2017-10-02 9 views
0

Das Problem, das ich momentan renne, ist, dass ich ein Drittanbieter-Plugin über lade, damit das generierte DOM nicht direkt darauf zugreifen kann.Wie man das DOM manipuliert, das mit JavaScript erstellt wurde

Wenn es direkt zugänglich ist, dann konnte ich erfolgreich das DOM ändern über

document.getElementsByClassName('conversations-header-name')[0].innerHTML = 'chatting with Chris'; 

Nun, meine Frage ist: Wie kann ich den Text ändern, nachdem die Seite geladen wurde erstellt und dann in dem angezeigten Container der Klasse conversations-header-name ohne den Quellcode zu ändern, da es ein 3rd-Party-Plugin ist, das wir verwenden?

* bearbeiten Das generierte DOM durch das Plugin wird innerhalb eines iframe angezeigt.

+0

nutzen window.load Funktion zu helfen, ... wenn Sie conforatable sind mit Jquery haben wir document.ready() in diesem Fall – RohitS

+0

Ich verstehe nicht "also das generierte DOM von dem ist nicht direkt zugänglich". Wenn es auf der Seite, in Ihrer Domain und nicht in einem anderen Domain-Iframe ist, können Sie alles tun, was Sie wollen, solange Sie den richtigen Selektor kennen. – zero298

+0

Das Endergebnis ist ein HTML-DOM. Wenn Sie also das Plug-In nicht aktiv auf DOM-Änderungen überwachen, können Sie einfach den Inhalt der Seite mit dem Skript auf dieser Seite ändern. – RohitS

Antwort

0

Dies ist etwas in der Nähe ..

document.onreadystatechange = function() { 
 
    var state = document.readyState; 
 
    if (state == 'complete') { 
 
     var e1 = document.getElementById('e1'); 
 
     var e2 = document.createElement('div'); 
 
     e2.setAttribute("id","e2"); 
 
     e2.innerHTML = "Div 2"; 
 
     e2.style.color ="red"; 
 
     e1.append(e2); 
 

 
    } 
 
};
<div id="e1"> 
 
Div 1 
 
</div>

Verwandte Themen