我遇到脚本链接自定义操作的问题。我正在构建SharePoint应用程序,并成功添加了指向样式库中脚本文件的站点范围自定义操作,因为我希望将此特定脚本注入到我的SharePoint网站的所有页面。未通过ScriptLink自定义操作加载脚本文件文件
虽然它在某些情况下有效,但脚本链接注入在某些情况下没有明显原因中断。例如,当我到达我的根网站时,脚本将被注入。但是,如果我转到此Web中的某个链接(例如Home或Site Contents),那么应该注入的文件将不会从样式库中获取,因此也不会被注入,从而导致未捕获的ReferenceError我尝试调用其中一个脚本的功能。最奇怪的部分是,通过Ctrl + F5刷新页面将无任何问题地获取脚本文件,无论页面在首次访问时最初获取脚本文件的能力如何。它将保持脚本直到通过链接再次访问它。
我已经阅读了关于Sharepoint caching,认为它可能是我的问题的原因,但麻烦的是,这些文章谈论的大多是高速缓存引起的错误时更新文件,而我只是在尝试访问它。
有一点要注意的是,由于限制,我通过代码添加脚本链接自定义操作。这里有一个例子,这种电话目前看起来像我的应用程序:
context.Load(context.Site.UserCustomActions);
context.ExecuteQuery();
customAction.Name = "MyScriptLink";
customAction.Location = "ScriptLink";
customAction.Sequence = 100;
customAction.ScriptSrc = "~SiteCollection/Style Library/MySite/MyScript.js";
customAction.Update();
context.ExecuteQuery();
那么,这是怎么回事?为什么我的脚本没有注入某些页面?为什么在这些完全相同的页面上进行刷新可以毫无问题地获取文件?
可以尝试添加脚本使用脚本标记而不是scriptlink看它是否工作?此后尝试添加属性到scriptlink defer =“false” – Nikunj 2014-09-10 20:19:38
我不知道这是否是你的意思,但我试图通过ScriptBlock属性注入js代码而不是试图通过ScriptSrc属性获取文件,并且代码被注入到处,这意味着自定义操作本身在每个页面上运行。 现在,问题是:为什么它不提取文件? – 2014-09-10 20:41:12