【发布时间】:2021-03-27 19:36:00
【问题描述】:
我正在编写一个 Tampermonkey 脚本来更改网页上某些内容的名称。但是,该脚本似乎无休止地运行。如果脚本在相应的网站(https://www.gutenberg.org/files/46/46-h/46-h.htm)上运行,它将把“Scrooge”变成“Happy Scrooge”变成“Happy Happy Scrooge”等等,而不是仅仅将“Scrooge”变成“Happy Scrooge”。
最终,页面内存不足并导致选项卡崩溃。即使没有什么可以重新替换,比如只是“悲伤”变成“快乐”,它仍然会在一分钟内使标签崩溃。这对我来说似乎相当简单,但我还没有在网上找到解决方案。我将不胜感激!
我是网络编程新手,所以如果有人对清理我的代码有任何建议,我将不胜感激。
// ==UserScript==
// @name Change Name
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Changes the name of something on a webpage.
// @author You
// @match https://www.gutenberg.org/files/46/46-h/46-h.htm
// @grant none
// ==/UserScript==
(function() {
'use strict';
function run () {
var ele = document.querySelectorAll("p");
var i, str, n;
var oldName = "Scrooge";
var newName = "Happy Scrooge";
for (i = 0; i < ele.length; i++) {
str = ele[i].innerHTML;
n = str.indexOf(oldName);
if (n > -1) {
str = str.replace(oldName, newName);
ele[i].innerHTML = str;
} else {
setTimeout(run, 500);
}
}
}
run();
})();
【问题讨论】:
标签: javascript html google-chrome-extension tampermonkey