Букмарклет:
javascript:(function(script,body,src){script.src=src;body.appendChild(script)}(document.createElement('script'),document.body,'http://site/script.js'));;
Скрипт который отдаёт сервер:
(function(){
var dict = { //массив переведенных иероглифов и линков на картинки
'高於' : 'http://site.ru/img1.jpg',
'меняем' : 'http://site.ru/img2.jpg'
}
var locale = function(re, arr){ //сразу преобразуем список в регулярное выражение
var i = arr.length;
while(i--) arr[i] = arr[i].replace(re, '\\$&')
return new RegExp(Object.keys(dict).join('|'), 'g')
}(/[.*+?^${}()|\[\]\/\\]/g, dict);
function replace(node){
var frag = document.createDocumentFragment(),
div = document.createElement('div');
div.appendChild(node.cloneNode());
div.innerHTML = div.innerHTML.replace(locale, function(word) { return '<img src="' + dict[word] + '">' });
while(div.hasChildNodes()) frag.appendChild(div.firstChild);
return frag
}
var elems = document.getElementsByTagName('*'), i = elems.length;
while(i--) {
var childs = elems[i].childNodes, j = childs.length;
while(j--) if( childs[j].nodeType === 3 && locale.test( childs[j].data ) ){ //перебираем детей и если нода текстовая и в ней есть переведённый текст
elems[i].replaceChild(replace(childs[j]), childs[j]); //меняем текстовую ноду на фрагмент докумета из текста и картинки
}
}
}())