‘’“”‛‟′″˝
과 같은 특수 문자를 어떻게 강조 표시합니까 (또는 특별한 마크 업을 부여합니까)? 감사. .innerHTML.replace()
찾기 및 바꾸기는 이벤트 핸들러와 DOM을 파손하므로 작동하지 않습니다.자바 스크립트 강조 문자
나는 다음을 시도했지만, 그건 그냥 일반 텍스트 대신 코드에서 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()가'페이지에 어떤 임의의 단어를 대체 할 수있다 (A'span'를 추가 포함) 단순히 액세스 할 수없는 페이지의 HTML을 변경할 필요가 없습니다. 그러나 그렇게하면 DOM과 모든 이벤트 핸들러를 파괴하여 나머지 페이지를 무력화시킵니다. 이것을하기위한 좋은 방법이 있어야합니다. – user793238
@ user793238 그럼 사실이 아닐까요? 나는 그것이 내가 말한 것과 모순된다고 생각하지 않는다. innerHTML을 설정하면 트리의 해당 부분에있는 모든 노드가 바뀝니다. – Nicole
@Renesis 당신은 문자가 'span'으로 감싸 져야한다고 말했 읍니다. 그렇지 않은 경우에도이 작업을 수행 할 수 있지만 이렇게하면 DOM 및 모든 이벤트 핸들이 손상됩니다. 당신이 도울 수 있도록 당신이 무엇을 요구하고 있는지 확실하지 않습니다. – user793238