Hier ist, was ich getan habe:Kann nicht Manipulieren DOM von neuen Tab über chrome.tabs erstellt
chrome.tabs.create({url:msg.url}, function(tab) {
chrome.tabs.executeScript(tab.id, {
runAt:"document_end",
allFrames:true,
code:"var ready = function(fn){ if(typeof fn!== 'function') return ; if(document.readyState === 'complete') {return fn();} if(document.readyState === 'interactive'){ return fun(); };}; ready(function() { console.log(document.querySelector('#rso h3 a')) alert('yes'); document.querySelector('#rso h3 a').click(); });"
});
});
Aber es scheint, dass der js läuft in isolierter Umgebung, so kann ich nicht auf das DOM manipuliert, gibt es eine Abhilfe?
Ich habe auch versucht die code
Attribut nur das folgende Snippet
document.querySelector('#rso h3 a').click();
PS zu enthalten: Wenn das code
Attribut ist, ein Aufruf an alert()
Funktion zum Beispiel, es einwandfrei Woks.
Was ist der eigentliche Code nicht arbeiten? Versuchen Sie, auf eine von der Seite festgelegte Variable zuzugreifen? Außerdem kann die Site ihren Inhalt dynamisch hinzufügen, sodass Sie möglicherweise einen MutationObserver oder setTimeout benötigen. – wOxxOm
@wOxxOm: Bearbeitete den Post und fügte den Code hinzu. Der Code hat einen zusätzlichen Teil, der sicherstellen soll, dass der Code ausgeführt wird, nachdem DOM bereit ist. – cipher
Was ist 'document.addEventListener ('interaktiv')'? –