使用 Chrome 扩展程序格式化单词(使其变为红色)[重复]
Posted
技术标签:
【中文标题】使用 Chrome 扩展程序格式化单词(使其变为红色)[重复]【英文标题】:Format a word (make it red) with a Chrome Extension [duplicate] 【发布时间】:2018-04-18 02:42:50 【问题描述】:不是骗子...没有提到的工作.. 试图用谷歌扩展突出显示一个词。将此作为内容脚本运行,但它似乎不是一个有效的解决方案......我错过了什么?
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++)
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++)
var node = element.childNodes[j];
if (node.nodeType === 3)
var text = node.nodeValue;
var replacedText = text.replace("Target Text", "<font color='red'>Target Text</font>");
if (replacedText !== text)
element.replaceChild(document.createTextNode(replacedText), node);
【问题讨论】:
【参考方案1】:在这一行中,您要求一个节点的子节点:
var node = element.childNodes[j];
这将始终返回一个节点数组,即使只有一个节点。 所以这个条件永远不会成立:
if (node.nodeType === 3)
你实际上得到了所有nodes
,你也必须循环这些。
【讨论】:
嗯,实际上它确实有效,但不是 html 代码......它不会使它变红,而只是用没有格式的代码替换页面上的单词"目标文本" @JessicaRay 你可能想设置innerHTML而不是节点的文本。 是的,@Nate,你说得对……谢谢。以上是关于使用 Chrome 扩展程序格式化单词(使其变为红色)[重复]的主要内容,如果未能解决你的问题,请参考以下文章