querySelectorAll 在 jquery 的 Chrome 中因异常而暂停

querySelectorAll paused on exception in Chrome in jquery

提问人:ontsin 提问时间:8/10/2023 最后编辑:freedomn-montsin 更新时间:8/11/2023 访问量:87

问:

我的项目是一个 Ruby on Rails 项目,它以前运行良好,但最近它停止在 Chrome 中工作。它在 Safari 和 Firefox 中运行良好。

当我打开开发人员工具窗口并刷新页面时,它会在加载过程中暂停几次以对我大喊大叫

🚫 Paused on exception DOMException: Failed to execute 'querySelectorAll' on 'Element': '\' is not a valid selector.

然后当我在休息时间玩的时候......

DOMException: Failed to execute 'querySelectorAll' on 'Element': '*,:x' is not a valid selector.

DOMException: Failed to execute 'matches' on 'Element': '[s!='']:x' is not a valid selector.

代码行是

el.querySelectorAll("\\\f"); el.querySelectorAll("*,:x"); matches.call(el, "[s!='']:x");

此问题分别发生在 sizzle.js 和 jquery.js 中。

调用堆栈只是依赖项,我什么也没写。

(https://i.stack.imgur.com/TamRZ.png)

大约一个月前,当我更新 Chrome 时,这个问题开始发生,所以我签出了一个分支并恢复到几个月前的提交。然后我破坏了 webpack 并重新编译了我所有的依赖项,因为我肯定我以前没有遇到过这个问题。唉,它也不起作用。

最新版本的 Chrome for MacOS 中是否存在一些错误?

JavaScript jQuery Google-chrome 嘶嘶作响

评论

0赞 Barmar 8/10/2023
错误消息似乎很清楚,您在调用 .请发布一个最小的可重现示例,说明您是如何生成选择器的。querySelectorAll()
0赞 ontsin 8/10/2023
@Barmar 在我的项目中使用jquery。我指定这发生在 sizzle.js 和 jquery.js 中。Sizzle 是作为 jQuery 版本 1.3 的一部分引入的
0赞 Barmar 8/10/2023
您仍然给出了不正确的选择器。第一个错误说您尝试使用反斜杠作为选择器,这是无效的。
0赞 Barmar 8/10/2023
如果 Chrome 中存在如此严重的错误,您将无法访问许多网站。
0赞 ontsin 8/10/2023
我的错,我在源代码开发工具中点击了一些不好的东西

答:

0赞 ontsin 8/10/2023 #1

https://github.com/jquery/sizzle/blob/main/src/sizzle.js#L879

jquery 源代码中的这一行代码会引发异常。

确保 Chrome 的 Sources 开发工具未配置为Pause on uncaught exceptionsPause on caught exceptions