我有一个在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中的书签和各种其他内容无效。
答案 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
是您指向的元素。