我有这个代码,需要运行时,我的插件启动,需要查找单词,然后替换为不同的工作,如果它找到它。
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
发布于 2012-02-03 08:22:08
从错误消息判断,您正在使用插件SDK。您的main.js
模块在单独的上下文中运行-它不附加到任何窗口或文档。所以当然没有定义变量document
。
你显然想要改变网页的内容--这就是content scripts的作用。您可以使用page-mod
(它将为所有打开的新页面运行内容脚本),也可以使用tab.attach()
为现有选项卡运行内容脚本。
发布于 2012-02-02 19:53:53
当代码运行时,文档未就绪。在您的body
标记中,您需要将onload='ready();'
(或您想要调用函数的任何名称)放入脚本中,然后使用您在该函数中编写的代码在脚本中定义function ready() { }
。
https://stackoverflow.com/questions/9118833
复制相似问题