这是一个创建于 648 天前的主题,其中的信息可能已经有所发展或是发生改变。
// 需要替换的关键字
const targetText = "关键字";
// 替换成的文本
const replacementText = "被关键字替换";
// 遍历所有文本节点,替换关键字
function replaceText(node) {
if (node.nodeType === Node.TEXT_NODE) {
const text = node.textContent;
const replacedText = text.replaceAll(targetText, replacementText);
if (replacedText !== text) {
node.textContent = replacedText;
}
} else if (node.nodeType === Node.ELEMENT_NODE) {
const tagName = node.tagName.toLowerCase();
if (tagName !== "script" && tagName !== "style") {
const childNodes = node.childNodes;
for (let i = 0; i < childNodes.length; i++) {
replaceText(childNodes[i]);
}
}
}
}
// 替换文本,这个貌似不执行也不影响结果。
// replaceText(document.body);
// Surge 必须要有 done 最后。
$done()
——————
我在 Chrome 执行后确实能替换。
但在 Surge 报错,我不知道问题在哪。
|
|
1
iX8NEGGn 2023-02-25 14:58:39 +08:00 via iPhone
你需要这样才行:
let body = $response.body;
//……对 body 进行替换的代码
$done({ body });
|