私は、ページの要求に応じていくつかのjsを読み込むために基本ローダーを使用しています。 1台または2台のマシン(私はそれらのマシンにアクセスできない)で、「Uncaught SyntaxError:xxxの無効または予期しないトークン」または「Uncaught SyntaxError:予期しないトークンILLEGAL」のようなエラーが発生します。ヘッダースクリプトのjs解析エラーをキャッチ
もちろん、ソースファイルは正常です。これは何千ものクライアントで動作しています。確かにこれは私のjsファイルを変更しているいくつかのアンチウイルスでなければなりませんが、私はこれについてクライアントに通知するか、少なくとも通知することができるかどうかを知りたいと思います。
私の問題は、私はXMLHttpRequestをを使用してスクリプトをロードし、そして私は、サーバー上のファイルへ
request.onload = function() {
var txt = request.responseText + "\n//# sourceURL=" + file + "\n";
try {
var script = domDocument.createElement("script"),
head = domDocument.head || domDocument.getElementsByTagName("head")[0];
script.defer = true;
script.text = txt;
head.appendChild(script);
} catch (e) {
domWindow.onerror("Error loading js.", file, 0, 0, e, txt);
}
request.onload = function() { };
};
どこに「ファイル」のポイントのように、ヘッダーにテキストを付加していますonloadイベントだということです。問題は、ブラウザが上記のコードをうまく実行していると思われ、実際のエラーを解析/スローするようにキャッチが実行されないことです。
何らかの形で、私の読み込みスクリプトの中でエラーをキャッチすることができるかどうかを知りたいので、私のjの代わりに実際にブラウザが受け取ったものを報告することができます。
スクリプトを読み込んでテキストとして頭に挿入する理由はありますか?スクリプトタグに 'src'属性を付けるほうがずっと良いでしょう。 – Archer
はい、私はスクリプトがロードされたことを知る必要があるので、ローダーは相互依存するいくつかのスクリプトをロードする必要があるかもしれないので、 – CheloXL
onloadはそれを正確に行います。ホイールを再作成するのではなく、デフォルトの方法を使用する方がよいでしょう。 – Archer