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

J'aimerais modifier le contexte du javascript exécuté dans l'outil de développement webkit / firebug console pour exécuter son code comme s'il se déroule à partir d'un iframe sur la page.

Je sais que je pourrais le faire en ouvrant la page dans l'iframe sur une page distincte, mais je veux exécuter un code où il interagit avec la structure parentale.

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

Entrez la description de l'image ici

Firefox a actuellement une fonctionnalité similaire :

Entrez la description de l'image ici


Vous pouvez également naviguer à travers les images à l'aide de la ligne de commande :

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

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

 window.frames[0].runFunction() 

Pour la solution firebug, reportez-vous à cette réponse sur une autre question SO. Ne fonctionne pas de manière interdisciplinaire comme la solution Chrome de Dennis.

Edit: Avec les versions plus récentes de Firebug, elles peuvent avoir un problème interdisciplinaire fixe.

Dans Chrome d'aujourd'hui (version 52), il suffit de sélectionner l'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é.

Par exemple, ici, j'ai sélectionné un iframe et lorsque 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:

Entrez la description de l'image ici

L'exécution des instructions de script et des commandes par défaut est effectuée dans le contexte de la fenêtre de niveau supérieur. Si vous utilisez des images, utilisez la commande de console "cd ()".

Cd () L' appel de cd () sans paramètres retourne à la fenêtre de niveau supérieur.

Cd (fenêtre) Permet de modifier l'évaluation de l'expression de la ligne de commande de la fenêtre de niveau supérieur par défaut de la page Web à la fenêtre d'une image.

Plus d'infos, ici

 cd(document.getElementsByTagName('iframe')[0]);