萤火虫:如何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两种情况下的环境:
- https://getfirebug.com/tests/content/commandLine/cd.html (同域名,适用于我:FF 3.6.13,FB 1.6.2)
- http://getfirebug.com/tests/issues/3893/issue3893.html (跨域,失败)
另一个可能的惊喜来源:如果你一次执行更多的命令,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
是您指向的元素。
- 有没有像“Firebug for IE”(用于debuggingJavaScript)?
- 谷歌浏览器的类似Firebug的debugging器
- 如何在我的浏览器中编辑JavaScript,就像我可以使用Firebug编辑CSS / HTML?
- 从Firefox 51.0.1开始,console.log()在Firebug中不起作用
- Chrome / Firefox中双美元符号select器查询function的来源是什么?
- 如何使用Firebug(或类似工具)debuggingJavaScript / jQuery事件绑定
- Firebug – 断点没有命中
- 什么是console.log?
- Firebug:如何检查鼠标移动的元素变化?