我的代码需要在我的插件启动时运行,需要查找单词,然后在找到它时用不同的工作替换它。
var contents=document.body.innerHTML;
var idx=contents.search("hello");
if(idx) {
contents=contents.replace("hey",'<span id="highlight">hey</span>');
document.body.innerHTML=contents;
document.getElementById('highlight').scrollIntoView();
};
但我继续在控制台上收到错误
Traceback (most recent call last):
File "resource://jid1-qntppxcxwbpwlw-at-jetpack/lib/main.js", line 5, in
var contents=document.body.innerHTML;
ReferenceError: document is not defined
答案 0 :(得分:2)
根据您使用附加SDK的错误消息判断。您的main.js
模块在单独的上下文中运行 - 它不会附加到任何窗口或文档。因此,变量document
当然没有定义。
您显然想要更改网页的内容 - 这就是content scripts的用途。您可以使用page-mod
(它将为正在打开的所有新页面运行内容脚本),也可以使用tab.attach()
为现有选项卡运行内容脚本。
答案 1 :(得分:0)
运行代码时文档未就绪。在body
标记内,您需要放置onload='ready();'
(或者您想要调用函数的任何内容),然后使用您在该函数中编写的代码在脚本中定义function ready() { }
。