【问题标题】:firebug: how to cd to an iframefirebug:如何 cd 到 iframe
【发布时间】:2011-02-18 22:45:42
【问题描述】:

我有一个在 iframe 中运行的 facebook 画布应用程序。我想在 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 中的书签和其他各种东西,但无济于事。

【问题讨论】:

  • 我很确定如果您查看 Firebug 视图,iframe 标记旁边有一个“+”。如果您展开它,您可以看到加载到 iframe 中的内容。我还可以在控制台上看到来自 iFrame 代码的所有 javascript 调用。你想做什么?
  • 嗨,我试图在控制台中调用该 iframe 中的 javascript 函数。例如,我在 iframe 中使用 jquery,我想使用 jquery 选择器访问 div 并在控制台中绑定事件侦听器进行测试。
  • 我怀疑这是否可能。您可能需要在单独的窗口中打开 iFrame(通过右键单击它,然后选择在新窗口中打开 iFrame)。但是如果有办法在 iFRame 中调试 JS.. 我真的很想知道。
  • 你也可以阅读这个 Firebug 提示:softwareishard.com/blog/planet-mozilla/…Honza

标签: facebook iframe firebug


【解决方案1】:

使用以下命令之一:

 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"

【讨论】:

  • 谢谢。我曾经能够 cd 到框架,现在我不能,我以为我忘记了语法,但这实际上解释了它,因为在使用 iframe 的 facebook 画布应用程序中,iframe 确实是跨域的。我会关注问题并在修复后获取更新。
  • 安装了 firefox 4 beta 和 1.7 firebug,它现在可以工作了。谢谢!
  • 你将如何 cd 到具有相同名称属性的框架内的框架中?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-08-08
        • 1970-01-01
        • 2012-11-17
        • 1970-01-01
        • 1970-01-01
        • 2013-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多