2016-09-09 6 views
1

多くのリソースがロードされたページがあります。javascriptから正しく読み込まれたネットワークリソースを確認するには?

私は、リソースがjavascriptから正しくロードされたことを知る方法があるかどうかを知りたいと思います。

私が持っている:

index.html 

<script src="myResource.js"></script> 

にはどうすればmyresourceでは正しくmyresourceでファイルの内部のいくつかの変数を検索せずにロードされるjavascriptから知ることができます。

window.network.isLoaded("myResource.js") ? 'it is loaded!' : 'it is not loaded'; 

これが可能である:

私のような何かをしたいですか?

答えて

1

ホープ:

var $script = document.querySelector("[src='myResource.js']"); 

$script.addEventListener("load", function() { 
    // your callback's code 
}); 

それは持っていたよう@pwolaqによって指摘されていますが、スクリプトがすでに読み込まれている場合、このコードは機能しません。この問題を克服するために

、あなたは、キャプチャイベント委任&イベントを使用します(このコードは、スクリプト定義の前にを置いていることを確認してください)することができます

var $document = document.querySelector("body"); 

document.addEventListener('load', function(evt) { 
    var $script = document.querySelector("script[src='myResource.js']"); 

    if (!evt.target.isEqualNode($script) { 
     return; 
    } 

    // Callback code 
}, true); 
+0

スクリプトがすでにリソースがすでにロードされているためです – pwolaq

+0

ロードされている場合、それは動作しません - そのため、リスナーを接続する前にイベントが発生しています。 ''

-1

あなたはこのような何かを行うことができます。

if ($('script[src="myResource.js"]').length > 0){ 
    // script is loaded 
}else{ 
    // not loaded 
} 

が、それはあなたがloadイベントリスナーでこれを達成することができるはず

0

通常、スクリプトを同期的にロードされています。したがって、下の任意のスクリプト:

<script src="myResource.js"></script> 

その前身の変数と機能にアクセスできます。 より良い方法は、スクリプトがロードしたリソースがスクリプト自体に存在するかどうかを確認することです。

0

Javascriptを使用して実行できます。ちょうどJavaScriptを使用して

$.getScript("myResource.js", function(data, textStatus, jqxhr) { 
    if (jqxhr.status !== 200) { 
    console.error('resource could not be loaded:', textStatus); 
    } 
}); 

または、::jQueryのを使用して例えば

var script = document.createElement("script"); 
script.setAttribute("type", "text/javascript") 
script.setAttribute("src", "myResource.js"); 
if (typeof script === "undefined") { 
    console.error("resource could not be loaded"); 
} else { 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 
関連する問題