рони, что то я сейчас заморочился
, универсальный вариант:
(function(){
var locale = function(re, arr){ //сразу преобразуем массив в регулярное выражение
var i = arr.length;
while(i--) arr[i] = arr[i].replace(re, '\\$&')
return new RegExp(arr.join('|'), 'g')
}(/[.*+?^${}()|\[\]\/\\]/g, [ //массив переведённых фраз
'高於',
'foo',
'bar'
]);
function replace(node){
var frag = document.createDocumentFragment(),
div = document.createElement('div');
div.appendChild(node.cloneNode());
div.innerHTML = div.innerHTML.replace(locale, '<img src="http://myhost.ru/$&.jpeg">');
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]); //меняем текстовую ноду на фрагмент докумета из текста и картинки
}
}
}())