3

JavaScriptを使用して外部のJavaScriptファイルを動的にロードしています。私のアプリケーションでは、残りのプロセスを続行する前にそれらのスクリプトがいつメモリに完全にロードされたかを知る必要があります。私は頭にappenedされているスクリプトタグのonloadイベントを監視するために、次のコードを試してみました:Chromeがスクリプトタグのonloadイベントを正しく監視していませんか?

var headID = document.getElementsByTagName("head")[0];   
var newScript = document.createElement('script'); 
newScript.type = 'text/javascript'; 
newScript.onload = scriptLoaded; 
newScript.src = '/path/to/file.js'; 
headID.appendChild(newScript); 

出典:http://www.hunlock.com/blogs/Howto_Dynamically_Insert_Javascript_And_CSS

これは、Firefox(最新のバージョンのWindowsとOS X)で素晴らしい作品しかし、それをChromeは(再びWindowsとOS Xの両方のバージョンで)イベントを正しく観察せず、コールバック関数が早期に呼び出されるようです。

アイデア?

答えて

2

javascript。 shrug

0

関数呼び出しを別の関数でラップすることができます。

newScript.onload = function(){ scriptLoaded; }; 

クロームnewScript.onloadに戻り値を代入するためにscriptLoadedを評価しようとしているようですが、ほとんどのようだ:私はあなたが時々以下を記述してやっているようないくつかのエラーが助けなければなりませんでした。

var script_tag = $('<script><\/script>'); 
script_tag.attr('type', 'text/javascript'); 
script_tag.bind('load', function(e) 
{ 
    console.log('script loaded'); 
}); 
script_tag.attr('src', '/path/to/file.js'); 
$('head')[0].appendChild(script_tag[0]); 

ない、これはそれを修正する理由は、多分クロムはただのスクリプトタグは、純粋な使用して最初の実装で作成されていた方法が好きではなかったことを確認:jQueryを使ってそれを書き換えることによって、問題を解決するために管理

関連する問題