を呼び出した後、Firefox と Chrome (およびおそらく他のすべて) でスタック オーバーフローが発生しています$.colorbox.resize();
。問題をその方法に絞り込みましたが、モーダルのサイズが間違っていても、それがなければすべて正常に動作します。
Uncaught RangeError: Maximum call stack size exceeded
d.extend.type
d.extend.makeArray
d.fn.d.init
d
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
g.plugins.fn.clone
a.each.a.fn.(anonymous function)
...
通常のイベント ハンドラーとメソッドを実行する代わりに、ブラウザーのコンソールでいくつかの動的カラーボックスを作成しました。これらの動的カラーボックスを試すたび$.colorbox.resize()
に、スタック オーバーフローが発生しました。これは、エラーがカラーボックスを表示して準備するカスタムコードとは無関係であると私に思わせます.
jQuery 1.5.2 を使用しています。
スタック オーバーフローが発生するのはなぜですか? また、発生を防ぐにはどうすればよいですか?
アップデート
そして、私の制御フローのちょっとした疑似コード:
mouseClickHandler = function()
{
async_method_1(function()
{
someMethod1()
})
}
someMethod1 = function()
{
async_method_2(function()
{
someMethod2()
})
}
someMethod2 = function()
{
$.colorbox.resize();
}
更新 2
前述したように、上記のコードとは別にコンソールでカラーボックスを作成すると、スタック オーバーフローも発生します。たとえば、ブラウザのコンソールに次の 2 行を入力すると、やはりオーバーフローが発生します。
$.colorbox({html:'<h1>hello world</h1>'})
$.colorbox.resize()