13

当我尝试 cd 时,控制台显示“cd 未定义”

4

3 回答 3

13

在 Chrome Devtools 中,“上下文切换器”位于页面底部。看到<top frame>下拉菜单了吗?在那里,您可以更改脚本的执行位置。这实际上与 相同cd()

这在https://stackoverflow.com/a/8581276/89484中有更多解释

于 2012-05-17T16:36:47.767 回答
7

是的,你是对的 Firebug 有这个很棒的命令。我很喜欢。它使iframes工作变得更加容易。就我个人而言,我不会仅仅因为 Firefoxcd()中提供了 Firefox,因为我也可以在 chrome 开发工具中使用 cd 做任何我能做的事情。

只需contentWindow在命令提示符中使用关键字即可访问iframe window对象。然后你会很好地访问那里的任何函数和变量。

例如,我的变量中有一个iframe通常无法通过控制台访问的变量。

contentWindow但我仍然可以通过这样的方式访问变量:

theIfraem.contentWindow.secret;

在此处输入图像描述

如果要触发函数,请执行以下操作:

theIframe.contentWindow.myfunc();

如果你想定义一些变量(最难的一个):

var script = document.createElement('scrept');
script.innerHTML = "var secret = 'hi'";
theIframe.contentWindow.document.body.appendChild(script);

这就是cd()实际所做的。我知道它不如 Firebugs cd()。但好消息cd()即将降临 Chrome

于 2011-10-13T20:31:31.920 回答
0

对于使用firefox的人来说,cd()是不行的。

相反,一种可能的解决方案是在 iframe 的 contentWindow 上调用 eval() 以在 iframe 的上下文中运行 javascript。

var frame = document.getElementById("MyIframe").contentWindow;
frame.eval("alert(1);");
于 2022-02-05T19:58:20.167 回答