firebug:如何cd到iframe

时间:2011-02-18 22:45:42

标签: facebook iframe firebug

我有一个在iframe中运行的facebook canvas应用程序。我想在firebug中调试我的页面,但无法将javascript范围扩展到运行我的应用程序的iframe。

iframe:

<iframe frameborder="0" src="[app_url_removed]" name="iframe_canvas" id="iframe_canvas" class="canvas_iframe_util" style="height: 905px;"></iframe>

我已经尝试了以下所有内容,但没有一个能够正常工作:

cd(iframe_canvas)
cd(window.iframe_canvas)
cd(iframe_canvas.window)
cd($('iframe_canvas'))

我有Firefox 3.6.13 我曾尝试过firebug 1.7a11和firebug 1.6.2

还尝试使用此链接Firebug and jQuery selectors in an iFrame中的书签和各种其他内容无效。

4 个答案:

答案 0 :(得分:104)

使用以下命令之一:

 cd(frames[0]) 
 cd(frames["iframe_canvas"])

 cd(top)

返回主窗口。

但是,由于某个错误,目前这种错误不适用于跨域iframe(http://code.google.com/p/fbug/issues/detail?id=3893)。有两种测试用例可以测试两种情况下的环境:

另一个可能的惊喜来源:如果您一次执行更多命令,cd命令似乎对以下命令没有影响:

 >>> cd(frames[0]); location.href;
 ["Current window:", Window cdFrame.html]
 "https://getfirebug.com/tests/content/commandLine/cd.html"
 >>> location.href
 "https://getfirebug.com/tests/content/commandLine/cdFrame.html"

答案 1 :(得分:14)

在Chrome中,javascript控制台的底部顶部*有一个下拉菜单,可让您切换到另一个框架以执行javascript。还可以跨域工作!

* 2014年10月2日更新:在更新版本的Chrome中,此下拉列表已从控制台的底部移至顶部。

答案 2 :(得分:0)

我想当问到这个问题时,维基没有更新回来,但现在它有很好的例子: https://getfirebug.com/wiki/index.php/Cd

基本上,从iframe元素获取窗口所缺少的是“.contentWindow”

答案 3 :(得分:-1)

可以按如下方式访问元素:window.frames[x].document.getElementById("elementID");其中x是帧索引,elementID是您指向的元素。