开发者

jQuery in Chrome Console (8.0.552.237)

It appears th开发者_开发知识库at jQuery selectors are not functioning in the Chrome Console. Any type of selector returns "null". The scripts do properly run the javascript, however.

Has anyone else noticed this change or know of a fix.

Thanks.


I uncovered the cause of this in my own question.

The console injects its own function (just a shorthand) for document.getElementById(), aliased to $, which shadows jQuery's $. Easy way to check this: when you're at a breakpoint, and jQuery seems to be broken, compare the following in the console:

  • jQuery
  • $
  • window.$

The first and last will be jQuery proper, the local $ is something like:

function () {
    return document.getElementById.apply(document, arguments)
}

This is because code run from the console is wrapped in a with statement:

with (window ? window.console._commandLineApi : {}) {
with (window) {
    // the actual code you typed in here
}   
}

and window._commandLineApi.$ is the function that shadows jQuery.

jQuery in Chrome Console (8.0.552.237)


Found the bug in Chromium for this: http://code.google.com/p/chromium/issues/detail?id=70969


Just run the following command on the console to make it work:

$ = jQuery
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜