Ich möchte den Kontext des im Webkit-Entwicklertool / in der Firebug-Konsole ausgeführten Javascript ändern, um seinen Code so auszuführen, als würde er in einem Iframe auf der Seite ausgeführt.
Ich weiß, dass ich dies tun kann, indem ich die Seite im Iframe auf einer separaten Seite öffne, aber ich möchte Code ausführen, der mit dem übergeordneten Frame interagiert.
javascript
iframe
console
firebug
Muhd
quelle
quelle
window.frames[x]
Weise ausführen . Fügen Sie einfach den gewünschten Befehl hinzu. IEwindow.frames[0].runFunction()
Antworten:
Mit Chrome 15 können Sie den Umfang der Konsole ändern. Am unteren Rand der Konsole befindet sich neben der Schaltfläche zum Löschen der Konsole ein Menü mit
<top frame>
einer Liste der verfügbaren Frames:Firefox hat eine ähnliche Funktion, die derzeit entwickelt wird:
Sie können auch über die Befehlszeile über Frames navigieren :
quelle
Sie können Code in
<iframe>
s ausführen, indem Sie diewindow.frames[x]
Funktionalität verwenden. Beispielsweise,quelle
window.frames[0].alert()
In der heutigen Version von Chrome (Version 52) müssen Sie lediglich den Iframe auf der Registerkarte "Elemente" der Entwicklertools auswählen. Alles, was Sie in der JS-Konsole ausführen, wird automatisch im Kontext des ausgewählten Iframes ausgeführt.
Hier habe ich beispielsweise einen Iframe ausgewählt. Wenn ich
document.location.pathname
in die Konsole tippe, wird anstelle der URL aus der Adressleiste das src-Attribut des Iframes zurückgegeben:quelle
Eine Firebug-Lösung finden Sie in dieser Antwort auf einer anderen SO-Frage. Funktioniert jedoch nicht domänenübergreifend wie Dennis 'Chrome-Lösung.
Bearbeiten: Bei neueren Versionen von Firebug wurde möglicherweise ein domänenübergreifendes Problem behoben.
quelle
Die Ausführung von Skriptanweisungen und Befehlen erfolgt standardmäßig im Kontext des Fensters der obersten Ebene. Wenn Sie Frames verwenden, verwenden Sie den Konsolenbefehl "cd ()".
cd () Wenn Sie cd () ohne Parameter aufrufen, kehren Sie zum Fenster der obersten Ebene zurück.
cd (Fenster) Ermöglicht das Ändern der Auswertung von Befehlszeilenausdrücken vom Standardfenster der obersten Ebene der Webseite in das Fenster eines Frames.
Mehr Infos hier
quelle
quelle