Javascript 查找并替换谷歌搜索div';使用Chrome扩展的innerHTML
我正在尝试构建一个Chrome扩展,它可以扫描一些Google搜索结果,如果div的原始innerHTML包含特定的单词或短语,则可以用字符串替换div的innerHTML(或innerText) 每当我尝试使用类“g”获取div,并尝试使用该值检查replaceDivs函数中的innerHTML和与div关联的其他属性时,我总是发现变量“divs”为空。在阅读其他Stackoverflow文章后,我发现我必须添加一个事件侦听器,这是在DocumentReady函数中完成的。但是,尽管添加了一个事件侦听器来查找插入的节点,我仍然发现代码中的“divs”变量不包含任何内容 在调试content.js文件时,我发现在加载整个页面之前,“divs”变量是空的,因此我尝试在manifest.json文件中使用“run_at”:“document_end”。但这也没有解决问题,因为调试时“divs”变量仍然为空 我收到这样的信息: My content.js文件:Javascript 查找并替换谷歌搜索div';使用Chrome扩展的innerHTML,javascript,jquery,google-chrome,asynchronous,google-chrome-extension,Javascript,Jquery,Google Chrome,Asynchronous,Google Chrome Extension,我正在尝试构建一个Chrome扩展,它可以扫描一些Google搜索结果,如果div的原始innerHTML包含特定的单词或短语,则可以用字符串替换div的innerHTML(或innerText) 每当我尝试使用类“g”获取div,并尝试使用该值检查replaceDivs函数中的innerHTML和与div关联的其他属性时,我总是发现变量“divs”为空。在阅读其他Stackoverflow文章后,我发现我必须添加一个事件侦听器,这是在DocumentReady函数中完成的。但是,尽管添加了一个
//Replaces divs inner text with a message if a particular substring is found.
function replaceDivs() {
var divs = document.getElementsByClassName("g");
console.log(divs);
for (var i = 0; i < divs.length; ++i) {
var string = divs[i].innerText;
var substr = "substring to search for";
if (string.indexOf(substr) > -1) {
divs[i].innerText = "This is hidden for your safety!"
}
}
}
$(document).ready(function () {
console.log("test");
document.addEventListener('DOMNodeInserted', replaceDivs());
});
//如果找到特定子字符串,则用消息替换divs内部文本。
函数replaceDivs(){
var divs=document.getElementsByClassName(“g”);
控制台日志(divs);
对于(变量i=0;i-1){
divs[i].innerText=“这是为了您的安全而隐藏的!”
}
}
}
$(文档).ready(函数(){
控制台日志(“测试”);
addEventListener('domandeinserted',replaceDivs());
});
My manifest.json文件:
{
"manifest_version": 2,
"name": "Replace Text",
"version": "1.0",
"browser_action": {
"default_popup": "popup.html"
},
"content_scripts": [ {
"js": [ "jquery-1.12.3.js", "content.js" ],
"matches": [ "<all_urls>" ],
"run_at": "document_end"
} ]
}
{
“清单版本”:2,
“名称”:“替换文本”,
“版本”:“1.0”,
“浏览器操作”:{
“默认弹出窗口”:“popup.html”
},
“内容脚本”:[{
“js”:[“jquery-1.12.3.js”,“content.js”],
“匹配项”:[“”],
“运行时间”:“文档结束”
} ]
}
所以我的最后一个问题是:如何解决这个问题,以便我可以使用谷歌搜索结果页面中的div数组来查找和替换文本
任何帮助都将不胜感激 你的replaceDivs()函数被调用过一次吗?是的,它只被调用过一次。好的。这些div是动态添加的。在document.ready()之后。对吧?你是说谷歌搜索结果?我以为它们已经被添加了,因为我在addEventListener调用中指定了“run_at”:“document_end”?印刷错误。不要在调用的函数中加括号。你的replaceDivs()函数调用过一次吗?是的,它只调用过一次。好的。这些div是动态添加的。在document.ready()之后。对吧?你是说谷歌搜索结果?我以为它们已经被添加了,因为我在addEventListener调用中指定了“run_at”:“document_end”?印刷错误。不要在调用的函数中插入括号。