以下是我遇到的控制台错误,导致我无法访问DOM。我可以验证id是否存在,不确定这是否是某种安全功能:\<![EX [[“尝试获取id为\”%s \“的元素但页面上不存在。” “hidden_elem”]]]>
答案 0 :(得分:0)
这个错误似乎与之相关的Facebook实际上并没有使用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
上下文设置为扩展程序。