[英]Using jQuery / javascript How to check if JS file ( SP.JS) is already called in a page?
我想檢查document.ready中是否已加載特定的JS文件。
像這樣的東西:
if(file already called/loaded) { // my code }
else {//some other code}
JS文件不是任何插件。
它基本上是一個與SharePoint相關的JS文件,如Sp.JS.
我們只知道文件名。
[更新 - 添加代碼]
我添加了以下代碼,它在控制台中拋出一個錯誤:SP.Runtime.js已經加載。
如果我刪除SP.Runtime.js的加載,我的代碼在默認情況下未加載Runtime.Js的某些頁面中不起作用。
$(document).ready(function() {
var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/";
$.getScript(scriptbase + "init.js",
function() {
$.getScript(scriptbase + "SP.Runtime.js",
function() {
$.getScript(scriptbase + "SP.js",
function() {
$.getScript(scriptbase + "SP.Taxonomy.js",
function() {
context = SP.ClientContext.get_current();
// My custom function //
});
});
});
});
});
請建議。
謝謝
SharePoint JavaScript庫,特別是SP.SOD命名空間包含用於加載/確保JavaScript文件的方法。
SP.SOD.executeOrDelayUntilScriptLoaded - 如果加載了包含它的文件,則執行指定的函數,例如:
ExecuteOrDelayUntilScriptLoaded(myfunc, "SP.js"); function myfunc() { }
在這種情況下,將在加載sp.js文件后調用myfunc
SP.SOD.executeFunc - 確保加載包含指定函數的指定文件,然后運行指定的回調函數,例如:
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function (){ //your code goes here... });
該行為與前面的示例類似,但該函數還支持按需加載腳本的主要區別。
如果您只需要確保在執行代碼之前加載SharePoint的特定本機JS文件,那么Vadim的答案就是您所需要的,但是如果您需要確保加載所有頁面元素(包括所有JS文件),那么您應該使用window.onload
。
請看一下這個頁面 ,人們討論了windows.onload
和$(document).ready()
之間的區別。
window.onload vs $(document).ready()
更新:如果您在SharePoint中的任何頁面中使用您的代碼,那么您不需要強制加載本機JS文件,您只需要在頁面加載過程的恰當時刻執行您的代碼。 嘗試使用$(window).load
或window.onload
而不是$(document).ready
,例如:
$(window).load(function(){ SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function (){ context = SP.ClientContext.get_current(); //your code goes here... }); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.