120 votes

Existe-t-il un moyen de changer le contexte en iframe dans la console javascript ?

Je voudrais changer le contexte du javascript exécuté dans l'outil de développement webkit/console firebug pour exécuter son code comme s'il était exécuté à l'intérieur d'un iframe sur la page.

Je sais que je pourrais le faire en ouvrant la page dans l'iframe sur une page séparée, mais je veux exécuter un code où il interagit avec le cadre parent.

169voto

Dennis Points 19148

Chrome 15 vous permet de modifier la portée de la console. En bas de la console, à côté du bouton "clear console", il y a un menu qui indique <top frame> qui donnera une liste des cadres disponibles :

enter image description here

Firefox dispose d'un caractéristique similaire actuellement en cours de développement :

enter image description here


Vous pouvez également naviguer entre les cadres en utilisant la ligne de commande :

var frame = document.getElementById("frame1").contentWindow;
cd(frame);

23voto

Ktash Points 5357

Vous pouvez exécuter du code dans <iframe> en utilisant le window.frames[x] fonctionnalité. Par exemple,

window.frames[0].runFunction()

6voto

dpercy Points 226

Dans la version actuelle de Chrome (version 52), il suffit de sélectionner la iframe dans l'onglet "Éléments" des outils de développement. Tout ce que vous exécutez dans la console JS s'exécutera automatiquement dans le contexte de l'iframe sélectionnée.

Par exemple, ici j'ai sélectionné une iframe, et quand je tape document.location.pathname dans la console, il renvoie l'attribut src de l'iframe, au lieu de l'URL de la barre d'adresse :

enter image description here

5voto

Andreyka Bonart Points 65
cd(document.getElementsByTagName('iframe')[0]);

4voto

Muhd Points 2975

Pour la solution firebug, voir cette réponse sur une autre question de SO. Cependant, il ne fonctionne pas de manière inter-domaine comme la solution Chrome de Dennis.

Edit : Avec les nouvelles versions de firebug ils ont peut-être corrigé le problème de cross-domain.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X