Chrome在try/catch块中暂停,如何自动恢复?

Xiè*_*léi 9 debugging jquery google-chrome

我正在使用PrimeFaces(3.2),但问题与我认为的Chrome有关.

除非我打开Chrome调试窗口,否则一切正常.即,如果我关闭调试窗口,没有发生错误,根本没有异常(见下文,异常是try/catch-ed).

但是,如果我打开Chrome调试窗口并对网页执行某些操作,则调试程序会在以下位置暂停:

if ( !Sizzle.isXML( node ) ) {
    try { 
        if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
            var ret = matches.call( node, expr ); <----- Paused here.

            // IE 9's matchesSelector returns false on disconnected nodes
            if ( ret || !disconnectedMatch ||
                    // As well, disconnected nodes are said to be in a document
                    // fragment in IE 9, so check for that
                    node.document && node.document.nodeType !== 11 ) {
                return ret;
            }
        }
    } catch(e) {}
}
Run Code Online (Sandbox Code Playgroud)

这里node = <div ...和expr = :hidden.在调查了jQuery源代码后,Chrome似乎不支持node.querySelectorAll(':hidden'),.

为什么Chrome会在try/catch块中暂停?以及如何让它不再停顿?

Chrome版本:17

Jas*_*all 26

您是否在开发人员控制台的"脚本"选项卡中无意中启用了"暂停异常"选项?这是此屏幕截图中左侧的第四个图标:

截图

如果图标突出显示为蓝色,表示已启用,并且任何异常都会导致脚本暂停,就像您在那里设置断点一样,因此您可以对其进行调试.

  • 天哪,谢谢!这让我不知所措. (2认同)