我使用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) {} }
这里node =< div ...和expr =:hidden.
经过调查后的jQuery源代码,似乎Chrome不支持node.querySelectorAll(‘:hidden’),.
为什么Chrome会在这里暂停,在try / catch块?怎么让它不再停顿了?
Chrome版本:17
解决方法
您是否在开发者控制台的脚本选项卡中不知不觉中启用了“暂停异常”选项?这是截图左侧第四个图标:
如果图标突出显示为蓝色,则表示已启用,任何异常会导致脚本暂停,就像您在其中设置断点一样,因此您可以对其进行调试.