여러분이 선택한 단어에 강조 표시 CSS 규칙을 자동으로 적용 할 수있는 Google 크롬 확장 프로그램을 개발 중입니다..replace()를 사용하여 페이지의 텍스트를 강조 표시하십시오.
는 다음 코드 나누기 내 크롬 탭을 정지
var elements = document.getElementsByTagName('*');
for (var i=0; i<elements.length; i++) {
var element = elements[i];
for (var j=0; j<element.childNodes.length; j++) {
var node = element.childNodes[j];
if(node.nodeType === 3) {
var text = node.nodeValue;
var fetchedText = text.match(/teste/gi);
if(fetchedText) {
var replacedText = element.innerHTML.replace(/(teste)/gi, "<span style=\"background-color: yellow\">$1</span>");
if (replacedText !== text) {
element.innerHTML = replacedText;
}
}
}
}
}
에게 있습니다. 그러나 element.innerHTML = replacedText;
에서 element.innerHTML = "text";
으로 전환하면 작동합니다.
다음 코드는 무엇이 잘못되었는지를 알 수 없습니다.
'replacedText'에 값이 있습니까? –
@ScottMarcus'replacedText'를 로그 할 때' teste'와 같은 정확한 값을 보여줍니다. 그러나이 요소를'element.innerHTML'에 사용하면 내 탭이 손상됩니다. – rafaelcpalmeida
콘솔에'\ "'이스케이프 문자열이 표시되고 있습니까? 문자열을 다음과 같이 수정 해 보셨습니까?" $ 1 "'? –