Я пытаюсь создать пользовательский скрипт (Tampermonkey), чтобы добавить несколько вспомогательных кнопок на сайт, и первоначально я использовал скрипт ниже, основанный на опубликованном здесь .
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 в эти точки без переписывания с нуля.
Основная проблема сsite - это ID: ##### значения, которые я ищу, отображаются в одном и том же элементе, как показано ниже, поэтому я могу просто найти их по элементу (или, по крайней мере, не так, как мне известно в JS).
<div>
ID: 1234567 | Text
ID: 45678 | Text
</div>
Если бы кто-то мог указать мне правильное направление, которое было бы замечательно, или хотя бы сказать, что это невозможно без переписывания.