调试器未在Javascript中单步通过window.close

调试器未在Javascript中单步通过window.close,javascript,google-chrome,Javascript,Google Chrome,我正在使用谷歌浏览器,我有一个Javascript代码,可以打开一个弹出窗口,并在完成工作后关闭它。我的代码与此类似: 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] 关闭窗口后,我有更多的代码,但

我正在使用谷歌浏览器,我有一个Javascript代码,可以打开一个弹出窗口,并在完成工作后关闭它。我的代码与此类似:

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]

关闭窗口后,我有更多的代码,但调试器从未在该点之后执行任何步骤。我甚至试着把
调试器
关闭后
但无效。不过窗户关得很好


关闭弹出窗口后如何执行脚本?(显然,代码属于未关闭的父窗口)

尝试将代码移动到
.onbeforeuload
函数,如下所示:

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

这似乎是Chrome中的一个bug

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()
之后立即停止调试器,除非先执行了其他代码,例如赋值或
控制台.log
。即使在
window.close()
之后的第一条语句上设置断点也不会导致调试器再次中断,但在紧跟
window.close()之后的一行上放置断点将导致调试器中断


也许这不是一个令人满意的答案,但除非Chrome团队开始堆叠自己,或者Chrome项目出现了一个bug,否则我怀疑我们会得到更多…

您可以从关闭按钮调用另一个javascript函数,然后将内容设置为visible@BilalZafar哪个关闭按钮?什么内容?我从来没有提到过“关闭按钮”或设置内容之类的东西?在评论之前,请先阅读问题。“关闭窗口后我有更多代码”这是什么?@BilalZafar这完全不相关。甚至删除所有代码,只放入
调试器关闭后不会被点击。控制台中是否有任何错误?有趣。。似乎我在这里偶然发现了一个真正的角落案例。