Ich mache eine Chrome-Erweiterung, die bestimmten Text auf einer Seite durch neuen Text und einen Link ersetzt. Dazu benutze ich document.body.innerHTML, was ich gelesen habe bricht das DOM. Wenn die Erweiterung aktiviert ist, scheint das Laden von YouTube Videos und Seiten bei codepen.io zu brechen. Ich habe versucht, dies zu beheben, indem ich YouTube und codepen im Manifest ausklammere und sie im folgenden Code ausfiltere, aber es scheint nicht zu funktionieren.Chrome Erweiterung bricht DOM
Kann jemand vorschlagen, eine Alternative zur Verwendung von document.body.innerHTML oder sehen Sie andere Probleme in meinem Code, die Seitenlasten zu brechen? Vielen Dank.
var texts=["some text","more text"];
if(!window.location.href.includes("www.google.com")||!window.location.href.includes("youtube.com")||!window.location.href.includes("codepen.io")){
for(var i=0;i<texts.length;i++){
if(document.documentElement.textContent || document.documentElement.innerText.includes(texts[i])){
var regex = new RegExp(texts[i],'g');
document.body.innerHTML = document.body.innerHTML.replace(regex,
"<a href='https://www.somesite.org'>replacement text</a>");
}
}
}
Erstens, jede Seite aufzulisten, die es nicht funktioniert, skaliert nicht schrecklich gut auf das gesamte Internet. –
Ja, ich bin mir bewusst. Deshalb bitte ich um Hilfe. Aber es scheint, dass diese Seiten aus dem Manifest ausgeschlossen werden. ** sollte nur für diejenigen funktionieren, die mir bekannt sind, und das ist es nicht. – mostlynew