试图建立一个扩展,但不断收到错误ID的错误?

时间:2016-06-03 17:04:04

标签: javascript google-chrome console google-chrome-devtools

以下是我遇到的控制台错误,导致我无法访问DOM。我可以验证id是否存在,不确定这是否是某种安全功能:\<![EX [[“尝试获取id为\”%s \“的元素但页面上不存在。” “hidden_​​elem”]]]>

1 个答案:

答案 0 :(得分:0)

这个错误似乎与之相关的Facebook实际上并没有使用jQuery库。如果您在控制台中运行jQuery,则会收到错误消息。 $快捷方式实际上是另一个库的选择器。这就是您收到错误的原因。

jQuery

您可以使用内容脚本通过script标记将jQuery库注入网页:

var s = document.createElement('script');
s.src = chrome.extension.getURL('path_to_jquery/jQuery.js');
s.onload = function() {
    this.parentNode.removeChild(this);
};
(document.head || document.documentElement).appendChild(s);

然后,您将能够使用jQuery('#id')在页面上使用jQuery。您可以使用以下方法为其定义新的快捷方式:

var jq = jQuery.noConflict();
jq('#id'); // using the new shortcut

您还可以使用jQuery访问DOM,方法是将jQuery作为内容脚本以及其他脚本包含在内。以下是manifest.json

"content_scripts": [
    {
      "matches": ["http://*/*","https://*/*"],
      "js": ["jquery-1.12.4.min.js", "your_script.js"]

your_script.js中,您应该能够正常使用jQuery,因为上下文与实际页面不同,因此与$变量没有冲突。您可以通过将console更改为扩展程序本身,将top上下文设置为扩展程序。