萤火虫:如何cd到一个iframe

我有一个运行在iframe中的Facebookcanvas应用程序。 我想在firebug中debugging我的页面,但无法获得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,我已经试过萤火虫1.7a11和萤火虫1.6.2

也试图从这个链接的书签和其他各种东西在FireFug和jQueryselect器在一个iFrame无济于事。

使用这些命令之一:

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

  cd(top) 

返回到主窗口。

不过,由于这个错误,目前在跨域iframe( http://code.google.com/p/fbug/issues/detail?id=3893 )上无效。 有两种testing用例可以testing两种情况下的环境:

另一个可能的惊喜来源:如果你一次执行更多的命令,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" 

在Chrome浏览器中,在javascript控制台底部的顶部有一个下拉菜单,可以让你切换到不同的框架来执行JavaScript。跨作品也是如此!

*更新2/10/14:在更新版本的Chrome中,此下拉列表已从控制台的底部移到顶部。

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

基本上,你错过了从iframe元素的窗口是“.contentWindow”

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