我遇到腳本鏈接自定義操作的問題。我正在構建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