В настоящее время я создаю свое первое расширение chrome, которое делает некоторые изменения HTML (фильтрует сообщения) на основе наличия определенного ключевого слова. Это, однако, работает только в первый раз, когда страница загружается, а расширение было нажато, а не когда загружено больше историй. Я читал, что livequery помогает, но по какой-то причине это тоже не работает, возможно, оно обесценивается.Как сделать, чтобы расширение chrome для facebook выполнялось несколько раз, а не только в первый раз загружалось?
В настоящее время я отправляю сообщение из сценария фона для выполнения фильтрации.
content.js
chrome.runtime.onMessage.addListener(function(message, sender, response){
if(message.type=="color-divs"){
var divs = document.getElementsByClassName("userContent");
var blacklist = [
"Trump"
]
for(var i=0; i<blacklist.length; i++){
for(var j=0; j<divs.length; j++){
var ps = divs[j].getElementsByTagName('p');
var p = ps[0];
if(p.innerHTML.indexOf(blacklist[i]) != -1){
alert("lol");
var parent = divs[j].parentNode;
for(var k = 0; k<parent.childNodes.length; k++){
alert(parent.childNodes[k].className);
if (parent.childNodes[k].className == "_5x46") {
parent.childNodes[k].style.opacity = "0.0";
}
if (parent.childNodes[k].className == "_5pbx userContent") {
parent.childNodes[k].style.backgroundColor = "black";
}
if (parent.childNodes[k].className == "_3x-2") {
parent.childNodes[k].style.opacity = "0.0";
}
}
}
}
}
}
});
много вопросов уже покрытие это. –
См. Этот ответ: [Есть ли JavaScript-редактор jQuery для замещения DOM?] (// stackoverflow.com/a/39508954) – Makyen
Использование MutationObserver отлично работает. Большое спасибо. Извините за дублированный вопрос. –