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 s'exécute depuis 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 du code là où il interagit avec le cadre parent.
window.frames[x]
manière. Ajoutez simplement la commande que vous voulez. IEwindow.frames[0].runFunction()
Réponses:
Chrome 15 vous permet de modifier la portée de la console. En bas de la console, à côté du bouton d'effacement de la console, il y a un menu qui dit
<top frame>
qui donnera une liste des cadres disponibles:Firefox a une fonctionnalité similaire en cours de développement:
Vous pouvez également naviguer entre les cadres en utilisant la ligne de commande :
la source
Vous pouvez exécuter du code dans
<iframe>
s en utilisant lawindow.frames[x]
fonctionnalité. Par exemple,la source
window.frames[0].alert()
Dans Chrome d'aujourd'hui (version 52), il ne vous reste plus qu'à 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:la source
Pour la solution Firebug, voir cette réponse sur une autre question SO. Cependant, ne fonctionne pas dans plusieurs domaines comme la solution Chrome de Dennis.
Edit: Avec les versions plus récentes de Firebug, ils peuvent avoir corrigé un problème interdomaine.
la source
L'exécution des instructions de script et des commandes par défaut se fait dans le contexte de la fenêtre de niveau supérieur. Si vous utilisez des cadres, utilisez la commande de console "cd ()".
CD() appel de cd () sans paramètres retourne à la fenêtre de niveau supérieur.
cd (fenêtre) Vous permet de changer l'évaluation de l'expression de ligne de commande de la fenêtre de niveau supérieur par défaut de la page Web à la fenêtre d'un cadre.
Plus d'infos, ici
la source
la source