gpt4 book ai didi

javascript - Chrome 扩展 Javascript var 问题

转载 作者:行者123 更新时间:2023-11-27 23:33:40 26 4
gpt4 key购买 nike

我是 js 代码新手(来自 php/html/css),我正在尝试为 Chrome 创建一个个人扩展,允许浏览器用其他单词替换某些单词!

所以我有我的manifest.json:

{
"manifest_version": 2,
"name": "Name1",
"version": "14.3",
"description": "Desc1",
"browser_action": {
"default_icon": "myicon.png",
"popup": "popup.html"
},
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": [
"content.js"
],
"run_at": "document_end"
} ]
}

然后是我的 content.js

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(/[wordtoreplace]/gi, '[neword1]');
var replacedText = text.replace(/[wordtoreplace2]/gi, '[neword1]');
var replacedText = text.replace(/[wordtoreplace3]/gi, '[neword1]');
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}

但是浏览器只替换了我的 word1 而不是我的 word2 和 3 :(力量无法帮助,有人可以吗?

最佳答案

错误是重新声明和初始化同一个变量。如果您声明一个变量并将其初始化为一个值,并且在您重新声明同一变量并使用另一个值进行初始化后,结果将是:

var myVar = "This is the first var";var myVar = "Second var";alert(myVar);

现在警报的结果是“Second var”。

重新声明变量在某些高级上下文中很有用,但对于正常编程完全没有用。变量一旦声明,就无法重新声明,因为没有用,并且生成的程序变得不可读。无论如何,如果您初始化每个变量声明的值,最后一个变量声明将包含实际值。

因此,您需要执行以下三行:

var replacedText = text.replace(/[wordtoreplace]/gi, '[neword1]');var replacedText = text.replace(/[wordtoreplace2]/gi, '[neword1]');var replacedText = text.replace(/[wordtoreplace3]/gi, '[neword1]');

必须更改为:

var replacedText = text.replace(/[wordtoreplace]/gi, '[neword1]');replacedText = replacedText.replace(/[wordtoreplace2]/gi, '[neword1]');replacedText = replacedText.replace(/[wordtoreplace3]/gi, '[neword1]');

要重新声明相同的变量,请考虑链接该方法,如下例所示:

var text = "word1 word2 word3";var replacedText =text.replace("word1", "1")        .replace("word2", "2")        .replace("word3", "3");alert(replacedText);

现在replacedText的内容是“1 2 3”,因为对字符串应用replace方法意味着获得一个新的字符串,可以立即再次应用replace方法,依此类推。

REPLACE :替换中的标志 gi 代表:

  • g:全局匹配
  • i:忽略大小写

关于javascript - Chrome 扩展 Javascript var 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34322069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com