我在使用脚本链接自定义操作时遇到问题。我正在构建一个 SharePoint 应用程序,并且我成功地添加了一个指向样式库中脚本文件的站点范围自定义操作,因为我希望将此特定脚本注入到我的 SharePoint 站点的所有页面中。
虽然它在某些情况下有效,但脚本链接注入在某些情况下会在没有明显原因的情况下中断。例如,当我到达我的根网站时,脚本将被注入。但是,如果我转到此 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();
那么,这里发生了什么?为什么我的脚本没有在某些页面上注入?为什么刷新这些完全相同的页面可以毫无问题地获取文件?