これは検索性の観点からこれについて尋ねるのに理想的な場所ではないことを理解していますが、Internet Explorerで見るとJavaScriptコードが「行0のスタックオーバーフロー」エラーをスローするページがあります。
問題は明らかに0行目ではなく、文書に書いているもののリストのどこかにあります。 Firefoxではすべてが正常に動作するため、トラブルシューティングを支援するFirebugや友人の喜びはありません。
これの標準的な原因はありますか?これはおそらくInternet Explorer 7のバグか、かなり不明瞭なものだと思います。私の Google-f は、現在私に少しの喜びをもたらしています。私は以前にこれに遭遇した多くの人々を見つけることができますが、彼らがそれをどのように解決したか見つけることができないようです。
Internet Explorerの内部でoff"Disable Script Debugging"
オプションを有効にし、たまたま持っている場合はVisual Studio
でデバッグを開始できます。
これらのIE
固有の問題のいくつかを診断する数少ない方法の1つであることがわかりました。
私は最近この問題に遭遇し、この問題を引き起こしているコードの特定のケースに関する投稿を書きました。
http://cappuccino.org/discuss/2010/03/01/internet-Explorer-global-variables-and-stack-overflows/
簡単な要約:Hostグローバルオブジェクトを通過する再帰は、スタックの深さ13に制限されています。つまり、関数呼び出しが使用している参照(関数自体ではない)がwindow.foo =という形式で定義されている場合関数、その後のfooの再帰は13の深さに制限されます。
あぁ!
いくつかのコードにOnError()
イベントがあり、画像ソースが見つからない場合にデフォルトの画像パスに設定していました。もちろん、デフォルトの画像パスが見つからなかった場合、エラーハンドラーがトリガーされます...
同じような問題はあるが同じではない人にとって、この原因はおそらく、終了していないループ、それ自体をトリガーするイベントハンドラー、またはJavaScriptエンジンをスピンさせる類似のもののいずれかであると考えられます。
この問題があり、解決しました。 MaintainScrollPositionOnPostback
という名前の<%@ Page
タグに属性があり、それを削除した後、エラーが消えました。各ポストバック後のスクロールを防ぐために、前に追加しました。
Seleniumテスト内で問題が発生したためにここに来た場合:IEはBy.id("xyz")
が好きではありません。By.name、xpathなどを使用してください。
また、smartNavigation = "true"があると、これが発生します "
デフォルトのプロジェクトを設定しましたが、次のことがわかりました。
問題は、smartNavigationとmaintainScrollPositionOnPostBackの組み合わせです。このエラーは、両方がtrueに設定されている場合にのみ発生します。
私の場合、エラーの原因は次のとおりです。
<pages smartNavigation="true" maintainScrollPositionOnPostBack="true" />
その他の組み合わせは問題なく機能します。
誰でもこれを確認できますか?
すべてのスクリプトエラーに関する通知を表示する
代わりに「1行目」でしたが...
JQueryの_.clone
_メソッドを使用すると、この問題が発生しました。 html文字列$($(selector).html())
からjQueryオブジェクトを作成して、これらを置き換えました。
IE8でも同じエラーを再現しました。テキストボックスの1つには、無効なデータを置き換えるイベントハンドラーがいくつかあります。
$('.numbersonly').on("keyup input propertychange", function () {
//code
});
このテキストボックスにデータを入力すると、エラーメッセージが表示されました。上記のコードからイベント「propertychange」を削除し、現在は正常に動作するようになりました。
追伸多分それは誰かを助けるでしょう
私の場合、2つの関数a()
とb()
がありました。 1つ目は2つ目を呼び出し、2つ目は1つ目を呼び出していました。
var i = 0;
function a() { b(); }
function b() {
i++;
if (i < 30) {
a();
}
}
a();
setTimeout
を使用してこれを解決しました:
var i = 0;
function a() { b(); }
function b() {
i++;
if (i < 30) {
setTimeout( function() {
a();
}, 0);
}
}
a();
何を言えばいいのかわかりませんが、jQueryテーブルのソートと検索でも同じ問題が発生しました。たとえば、文字列を検索しているテーブルに何も残っていない場合、このエラーも発生します。 Googleアナリティクスでも、このエラーは頻繁に発生します。