window.errorのイベントリスナーを追加できることはわかっています。すべてのIframeのJavaScriptエラーを(window.errorを使用して)どのように捕捉するのですか?
しかし、Iframeで作業する場合、それぞれiframe
に独自のウィンドウ要素があり、iframe
ごとにwindow.error
を作成する必要があります。
何らかの理由で、すべてのエラーが がこの特定のメソッドをトリガーするエラーイベントハンドラを1か所に定義できますか?
window.errorのイベントリスナーを追加できることはわかっています。すべてのIframeのJavaScriptエラーを(window.errorを使用して)どのように捕捉するのですか?
しかし、Iframeで作業する場合、それぞれiframe
に独自のウィンドウ要素があり、iframe
ごとにwindow.error
を作成する必要があります。
何らかの理由で、すべてのエラーが がこの特定のメソッドをトリガーするエラーイベントハンドラを1か所に定義できますか?
。
function myHandler(msg, url, line){
//do stuff here...
}
//hook in all frames...
function addErrorHandler(win, handler){
win.onerror = handler;
for(var i=0;i<win.frames.length;i++){
addErrorHandler(win.frames[i], handler);
}
}
//start with this window... and add handler recursively
addErrorHandler(window, myHandler);
私はこれを試していないので、私のために私を掛けてください:-) すべてのiframeを保持しているマスター/親ウィンドウにエラーハンドリング機能を作成することができます。次に、jQueryを使用してページ内のすべてのiFramesを取得し、親ウィンドウに登録された関数を指すように.errorハンドラを登録します。
PS:javascriptのエラー処理の話題であったがまた、これもかなりクールです:これはうまくいくかもしれないhttps://damnit.jupiterit.com/
ありがとうございます。私のアプリには完璧ではないようだが、IFrameとウィンドウは私がなしには飛行機で作成されているので、 の多くを制御できるので、すべての勝利オブジェクトを事前に知ることはできない。 IEウィンドウでグローバルエラー処理方法がないと思いますか? ありがとう、 Tal。 – Tal
ああ、その場合は...あなたが作成するすべてのフレームに、ちょうど追加... window.onerror = top.myHandler; – scunliffe
はい...しかし、私はIframeのソースとなるものを事前に知りません。 (ターゲットIFrameへのフォーム送信を使用) - window.onerrorはIFrameコード自体の中になければなりません。 – Tal