簡體   English   中英

使用jQuery / javascript如何檢查是否已在頁面中調用JS文件(SP.JS)?

[英]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文件的方法。

  1. SP.SOD.executeOrDelayUntilScriptLoaded - 如果加載了包含它的文件,則執行指定的函數,例如:

     ExecuteOrDelayUntilScriptLoaded(myfunc, "SP.js"); function myfunc() { } 

    在這種情況下,將在加載sp.js文件調用myfunc

  2. 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).loadwindow.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM