【问题标题】:javascript iframe permissionjavascript iframe 权限
【发布时间】:2011-10-06 15:47:11
【问题描述】:

我在本地主机上有一个网页(父级), iframe 在 localhost 上显示另一个 url(子;它是不同 webapp 的一部分)。

在父页面中使用 javascript,我试图“窥视” iframe.contentDocument。 (iframe 显示的是项目列表,如果列表为空,我只想完全隐藏 iframe。)

现在,问题是,当尝试检索元素 iframe.contentDocument.body 时, 我在 Firefox 中收到错误消息: 访问属性“body”的权限被拒绝

在 IE 中,我简单地得到: 错误:'body' 为 null 或不是对象。

有人知道如何解决这个问题吗?

谢谢,

【问题讨论】:

  • 不,这是不同的。这不是跨域问题。两个 url:s 都在本地主机上,相同的端口(默认 80)和相同的协议(https)。
  • 您应该为 https 使用端口 443... 但无论如何,我会尝试在 firebug 中放置一个断点(就在错误之前),并查看“body”成员是否存在,是否存在,它的价值是多少。如果这不起作用,请添加更多代码以准确显示调用的位置以及在什么情况下。
  • 443...是的,你当然是对的...我应该写“默认”,句号:) ----但是body显然确实存在,否则它不会给出那个味精“权限被拒绝” --- 我不明白,但对我来说,Firefox 似乎认为它违反了同源策略,而我确定它不是......

标签: javascript ajax iframe firebug


【解决方案1】:

我已经看到了两种可能的解决方法来解决正文返回 null 的错误。一种是简单地将脚本埋在正文的底部,以便在构建正文之前它不会执行。但是每个人都讨厌内联脚本,不是吗?

另一个,来自here,是为你的 body 使用一个 onload 函数,这也确保在调用函数之前 body 存在。

两者似乎都工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2014-04-17
    • 2016-09-24
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多