Firefox userChrome.js greasemonkeyスクリプトスレ13

このエントリーをはてなブックマークに追加
390名無しさん@お腹いっぱい。
一応まとめておくだよ〜 >>381-382氏と>>386-387氏の運気が益々あがりますように。ありがとうございました

function replaceTextNodeWithHtml(textNode, regExp, repHtml){
if(regExp.test(textNode.nodeValue)){
var box = document.createElement('div');
box.innerHTML = encodeAngleBrackets(textNode.nodeValue).replace(regExp, repHtml);
var newNode = document.createDocumentFragment();
for(var i = 0; i < box.childNodes.length; i++) newNode.appendChild(box.childNodes[i].cloneNode(true));
textNode.parentNode.replaceChild(newNode, textNode);
}
}

function getTextNodes(node){
var result = [];
var nodes = document.evaluate('.//text()', node, null, 7, null);
for(var i = 0; i < nodes.snapshotLength; i++) result.push(nodes.snapshotItem(i));
return result;
}

function encodeAngleBrackets(str){
return str.replace(/</g, '<').replace(/>/g, '>');
}

getTextNodes(document.body).forEach(function(node){
    replaceTextNodeWithHtml(node, /(Firefox)/g, '<blink>$1</blink>');
});