【问题标题】:Why am I able to use jQuery syntax in Chrome's JS console when current page doesn't have jQuery loaded?当当前页面没有加载 jQuery 时,为什么我可以在 Chrome 的 JS 控制台中使用 jQuery 语法?
【发布时间】:2012-11-16 01:59:23
【问题描述】:

我认为必须先加载 jQuery 源才能使用 $ 来定位元素。我在一个甚至不包含任何脚本的网页上,但不知何故,我能够在 Javascript 控制台中运行 $('body'),并且 Chrome 成功返回了它的值。

为什么我没有收到类似“未定义令牌”的语法错误?谢谢。

【问题讨论】:

标签: javascript jquery google-chrome


【解决方案1】:

以前,Chrome 有一个 document.getElementById 的别名和 $ 变量。

Recently(可能在 Chrome 23 版本上),它已更改为 document.querySelector 的别名。

所以你的代码相当于document.querySelector('body')

【讨论】:

    【解决方案2】:

    正如@Shmiddty 在 cmets 中已经提到的那样,这可能是由于您安装了一个插件...

    您可以通过运行开发者工具找到答案,选择“Sources”并查看“Sources”和“Content Scripts”窗格 - 某处是否存在类似于 jQuery 的可疑内容?

    【讨论】:

    • 不,这是一个开发工具功能:stackoverflow.com/questions/11778477/variable-in-chrome
    • @jfrej 开发工具只是 getElementById 的别名,除非有 id 为 body 的元素,否则使用 $('body') 将不起作用。
    • 我的错。似乎它还加载了body。很奇怪。
    • 哦,有趣!感谢您的澄清!
    • @jfrej FWIW,最近已更改。可能是 Chrome 23。
    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多