有没有办法在javascript控制台中将上下文更改为iframe?

Muh*_*uhd 104 javascript console iframe firebug

我想更改在webkit开发人员工具/ firebug控制台中执行的javascript的上下文,以执行它从页面上的iframe内部运行的代码.

我知道我可以通过在单独的页面上打开iframe中的页面来实现这一点,但我想在与父框架交互的地方运行代码.

Den*_*nis 144

Chrome 15允许您更改控制台的范围.在控制台的底部,在清除控制台按钮旁边,有一个菜单,上面<top frame>会显示可用框架的列表:

在此输入图像描述

Firefox 目前正在开发类似的功能:

在此输入图像描述


您还可以使用命令行在框架中导航:

var frame = document.getElementById("frame1").contentWindow;
cd(frame);
Run Code Online (Sandbox Code Playgroud)

  • 我可以在控制台中执行代码来完成同样的事情,还是必须单击框架选择器? (5认同)
  • 非常好,甚至跨域工作.正是我想要的. (2认同)

Lov*_*ing 21

您可以<iframe>使用该window.frames[x]功能在s中执行代码.例如,

window.frames[0].runFunction()
Run Code Online (Sandbox Code Playgroud)


小智 8

cd(document.getElementsByTagName('iframe')[0]);
Run Code Online (Sandbox Code Playgroud)

  • 欢迎来到堆栈溢出!请考虑编辑您的帖子,添加更多关于您的代码的作用以及为什么它可以解决问题的解释。大多数只包含代码(即使它有效)的答案通常不会帮助OP理解他们的问题。 (2认同)

dpe*_*rcy 6

在今天的Chrome(第52版)中,您所要做的就是在开发工具的"元素"标签中选择iframe.您在JS控制台中运行的任何内容都将自动在所选iframe的上下文中运行.

例如,这里我选择了一个iframe,当我输入document.location.pathname控制台时,它返回iframe的src属性,而不是地址栏中的URL:

在此输入图像描述