【发布时间】:2018-10-14 06:12:29
【问题描述】:
我正在尝试创建一个用户脚本 (Tampermonkey) 以将一些帮助按钮添加到网站中,最初我使用的是基于here 发布的脚本。
setInterval(function() {
//RegEx for finding any string of digits after "ID: " up to the next space
var myRegexp = /ID:\s(\d*?)\s/gi;
];
var txtWalker = document.createTreeWalker (
document.body,
NodeFilter.SHOW_TEXT,
{ acceptNode: function (node) {
//-- Skip whitespace-only nodes
if (node.nodeValue.trim() )
return NodeFilter.FILTER_ACCEPT;
return NodeFilter.FILTER_SKIP;
}
},
false
);
var txtNode = null;
while (txtNode = txtWalker.nextNode () ) {
var oldTxt = txtNode.nodeValue;
//Find all instances
match = myRegexp.exec(oldTxt);
while (match != null) {
//Get group from match
var idNum = match[1]
//Replace current match with added info
oldTxt = oldTxt.(idNum, idNum+"| <SomeHTMLHere> "+idNum+" | ");
//Update text
txtNode.nodeValue = oldTxt;
//Check for remaining matches
match = myRegexp.exec(oldTxt);
}
}
}, 5000);
现在我想为文本添加更多功能,可能是可单击以复制到剪贴板或插入其他地方的内容。现在我知道我正在处理原始脚本中的文本节点,但我想知道是否有任何方法可以调整当前脚本以在这些点插入 HTML 而无需从头开始重写。
该站点的主要问题是这些 ID:##### 我要搜索的值都出现在同一个元素中,如下所示,所以我可以简单地按元素找到它们(或者至少在我有限的 JS 知识的情况下不是)。
<div>
ID: 1234567 | Text
ID: 45678 | Text
</div>
如果有人能指出我正确的方向,那就太好了,或者至少告诉我,如果不重写是不可能的。
【问题讨论】:
标签: javascript replace userscripts tampermonkey