从所有元素中获取所有文本,替换某些预先确定的单词,仅限javascript
当用户加载页面时,我试图检索文档或网页上的所有文本, 我试图在所有文本中搜索由[name value]数组定义的特定单词, 我试图用相应的值替换搜索到的单词的每个实例 范例 我正在使用chrome扩展在页面加载时注入我的js从所有元素中获取所有文本,替换某些预先确定的单词,仅限javascript,javascript,search,text,replace,find,Javascript,Search,Text,Replace,Find,当用户加载页面时,我试图检索文档或网页上的所有文本, 我试图在所有文本中搜索由[name value]数组定义的特定单词, 我试图用相应的值替换搜索到的单词的每个实例 范例 我正在使用chrome扩展在页面加载时注入我的js <document> <head>web page</head> <body> <p>paragraph of text. stack overflow
<document>
<head>web page</head>
<body>
<p>paragraph of text. stack overflow is wonderful</p>
<p>another paragraph of text. stack overflow is great</p>
<p>third paragraph with nested list
<ol>
<li>stack overflow yay</li>
<li>stack overflow wow</li>
</ol>
<img alt"stack is fun"></img>
</p>
</body>
网页
一段文字。堆栈溢出非常好
另一段文字。堆栈溢出非常好
带嵌套列表的第三段
堆栈溢出
堆栈溢出哇
单词堆栈在许多上下文和标记中多次出现。
我想使用名称-值对[stack:Snapshot,wonderful:Excellence]搜索整个文档,
然后用新值替换原来的单词。
页面应该用新单词代替旧单词刷新,所以
stack的每个实例现在都应该是零食,
每个精彩的例子现在都应该说精彩。你可以简单地用
regex
(g
)中的全局标志替换主体innerHTML
)
在代码片段中,我创建了一个数组
,由对象
组成,带有名称
和值
,其中名称
将成为目标,值
将取代名称
。我循环遍历数组
,并在document.body.innerHTML
上使用全局标志
执行regex
,以替换所有匹配的ocurrency
就这样
const单词=[
{
“targetValues”:[“stack”、“sack”、“stck”],
“价值”:“零食”
},
{
“targetValues”:[“精彩”],
“价值”:“惊人”
}
];
words.forEach(word=>{
word.targetValues.forEach(目标=>{
控制台日志(目标);
设reg=newregexp(target,“gi”);
document.body.innerHTML=document.body.innerHTML.replace(reg,word.value);
})
})
一段文字。堆栈溢出非常好
另一段文字。堆栈溢出非常好
带嵌套列表的第三段
堆栈溢出
堆栈溢出哇
解雇
麻袋拼错了
stck又拼错了
sTcK再次拼写错误,并带有一些大写字符
,这正是我想要做的,非常感谢!更详细地说,是否有一种方法可以在“名称”中指定多个单词,例如“名称”;“stack”、“shack”、“smack”,并且这些词中的任何一个都等于相同的值。我的实际例子是,对于那些说“上帝”的文档,我用大写或正确拼写替换所有小写或拼写错误的实例。即上帝,上帝,或者上帝将被数组中的值替换为上帝?我已经对帖子进行了更新并编辑了截取的代码。