2016-08-24 1 views
1

私はGoogle Chromeを使用していますが、ポップアップウィンドウを開き、ジョブが完了した後に閉じるJavaScriptコードがあります。ウィンドウを閉じた後、私はより多くのコードを持ってデバッガがJavascriptでwindow.closeを踏んでいない

myWindow = window.open(...); //it opens successfully. 
[code here is executed successfully] 
myWindow.close(); //can't get after this point 
[some more code that I can't reach] 

が、デバッガは決してその時点以降の工程ません:私のコードは次のようにあります。私はさらにをcloseの後に入れてみましたが、役に立たなかった。しかし、ウィンドウに近いです。

ポップアップウィンドウを閉じた後にスクリプトを実行するにはどうすればよいですか? (もちろん、コードはない閉じている親ウィンドウに所有されている)

+0

その閉じるボタンから別のJavaScript関数を呼び出して、コンテンツを表示するように設定します。 –

+0

@BilalZafar閉じるボタンはありますか?どのコンテンツ?私は "クローズボタン"やコンテンツの設定など何も言及していませんか?コメントする前に質問をお読みください。 –

+0

「ウィンドウを閉じた後にコードが増えた」これはなんですか? –

答えて

1

これはChromeのバグのように見えます。ような割り当て、またはconsole.logとして - あなたはすぐにwindow.close()後にデバッガに止めることができないようないくつかの他のコードが最初に実行していない限り、

debugger;     // Stops 
var x = '0';    // F10 
console.log(x);   // F10 
var mW = window.open(); // F10 
x = '1';     // F10 
console.log(x);   // F10 
mW.close();    // F10 
debugger;     // Skipped 
x = '2';     
debugger;     // Stops 
console.log(x);   // F10 

それは、見えます。でも、デバッガが再び中断することはありませんwindow.close()後の最初の文にブレークポイントを設定する - が、1つはすぐにwindow.close()デバッガが破損する原因となります、次の後行にブレークポイントを置きます。

あなたが呼び出すことができます おそらく

ない満足のいく答えが、Chromeチームが自分自身をスタックにに来て、またはバグがクロムプロジェクトで提起されていない限り、私たちはそれよりもはるかに多くを得るでしょう疑う...

+1

興味深い..私はここで実際のコーナーケースを見つけたようだ。 –

1

は、このような.onbeforeunload機能するようにコードを移動しよう:

myWindow = window.open(...); //it opens successfully. 
myWindow.onbeforeunload = function() { 
    [some more code that I can't reach] 
} 
[code here is executed successfully] 
myWindow.close(); //can't get after this point 
関連する問題