Как вы выделяете (или придаете специальную разметку) специальные символы, такие как ‘’“”‛‟′″˝
? Благодарю. Использование find и replace .innerHTML.replace()
не работает, поскольку оно разрушает обработчики событий и DOM.javascript подсветка символов
Я попытался следующие, но это только заканчивается с span
-х в виде обычного текста вместо кода.
function highlightText(node, find, rep){
if(node){
node= node.firstChild;
while(node!= null){
if(node.nodeType== 3){
node.data= node.data.replace(find, rep);
}
else highlightText(node, find, rep);
node= node.nextSibling;
}
}
return true;
}
highlightText(document.body,/‘/g, "<span style='background: red; color: white;'>‘</span>")
highlightText(document.body,/’/g, "<span style='background: red; color: white;'>’</span>")
highlightText(document.body,/“/g, "<span style='background: red; color: white;'>“</span>")
highlightText(document.body,/”/g, "<span style='background: red; color: white;'>”</span>")
highlightText(document.body,/‛/g, "<span style='background: red; color: white;'>‛</span>")
highlightText(document.body,/‟/g, "<span style='background: red; color: white;'>‟</span>")
highlightText(document.body,/′/g, "<span style='background: red; color: white;'>′</span>")
highlightText(document.body,/″/g, "<span style='background: red; color: white;'>″</span>")
highlightText(document.body,/˝/g, "<span style='background: red; color: white;'>˝</span>")
Это не так, например, '.innerHTML.replace()' может заменить любое случайное слово на странице (включая добавление 'span') без необходимости изменять HTML-страницу, которая просто недоступна. Но это нарушает остальную часть страницы, уничтожая DOM и все обработчики событий. Должен быть хороший способ сделать это. – user793238
@ user793238 Так что это не так? Я не думаю, что это противоречит сказанному мной. Я сказал, что установка innerHTML заменит все узлы в этой части дерева. – Nicole
@Renesis вы сказали, что символы должны быть завернуты в «span», прежде чем это можно было бы сделать, что неверно. Вы можете сделать это, даже если это не так, но это уничтожает DOM и все обработчики событий. Не уверен, что вы просите, чтобы вы могли помочь. – user793238