【问题标题】:Cross domain access to iframe using window.name使用 window.name 跨域访问 iframe
【发布时间】:2011-02-23 15:27:03
【问题描述】:

我实现了一个脚本来监视 iframe 名称,据我所知,网络上的各种来源都可以。但是,看来我一定是做错了什么——我明白了

错误:访问属性“名称”的权限被拒绝
源文件:http://plungjan.name/test/testwindowname.html
线路:16

请访问http://plungjan.name/test/testwindowname.html

我宁愿只修复我的脚本,而不是使用 jQuery 或 DOJO 或其他一些框架。谢谢

【问题讨论】:

    标签: iframe cross-domain


    【解决方案1】:

    我记得您必须将 iframe 位置更改为“about:blank”,然后您可以访问其 window.name 属性

    【讨论】:

    • 但我认为那会令人讨厌的眨眼 - 我不能更改为 about:blank 除非子框架告诉我它需要更改!
    • 这是从 iframe 获取 window.name 数据的唯一方法。但你总是可以使用其他方式来实现跨域 ajax 请求
    • 我知道这一切。这是一个脚本,其中 iframe 转到锚点,并且当 iframe 更改时父框架需要滚动到顶部
    • 也许您可以在父窗口“scroll_to_top”中定义函数,并在 iframe 中将事件附加到标签,像这样 **$("#label_id").click(function(){window.parent .scroll_to_top(params) }) ** 我没有尝试此代码,但认为它可以工作
    • 咳咳,不。如果可以的话,我不会打扰 window.name rigamarole。
    【解决方案2】:

    你这里需要的是跨域通信,还是只是窗口的名字?

    如果是第一个,请查看easyXDM - 它消除了从 IE6 到 Chrome10 等浏览器的所有 XDM 麻烦。

    【讨论】:

    • 仍然收到 HTTP 错误 404.0 - 未找到您要查找的资源已被删除、更改名称或暂时不可用。
    • 好了,无论如何你都不应该收到 404...downforeveryoneorjustme.org/easyxdm.net
    • 他们的演示:如果你想看到它的实际效果,see this RPC demo!
    • 谢谢...那里有服务器代理吗?
    • 不涉及代理 - 一切都发生在两个域之间的浏览器中。 Twitter、Disqus 等使用它是有原因的 :)
    【解决方案3】:

    看看这个问题:

    Resizing an iframe based on content

    有一个跨域解决方案...但您需要访问两台服务器才能实施此解决方案。

    【讨论】:

    • 可能。我不需要调整大小。我需要监控 url 的变化
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 2011-12-09
    • 2016-03-02
    • 1970-01-01
    • 2013-10-29
    • 2010-11-20
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多