从父页面监视iframe内容/状态

时间:2009-08-24 06:44:14

标签: javascript

有哪些方法可以监控IFRAME页面的状态,我知道有安全限制,但我希望仍然可以使用一些小型通知系统。

我的情况是我创建了一个位于客户服务器上的父页面,此页面上的iframe页面位于我的服务器(我的域)上。我需要以某种方式在这两者之间进行一点沟通:

我可以将javascript发送到父页面,该页面可以检查我的iframe页面上是否有特定的字符串,或者以某种方式使iframe页面通知父页面?

是否有例如是否有可能制作一个定时检查iframe内容的计时器?

我也接受回答mydomain / client.page如何在iframe上有客户端的customerdomain.intranet.com/parentpage.htm上调用回调

3 个答案:

答案 0 :(得分:1)

您需要使用跨站点JavaScript技术才能执行此操作。这是一个例子。

将另一个文件放入您的服务器,将其命名为helper.html,使用iframe将其包含在客户服务器提供的文件中。使用添加get参数设置helper.html iframe的src,即。 http:/myserver.com/helper.html?param1 = a& param2 = b,在帮助文件中使用javascript来调用父父的父方法(parent.parent.messageFromIframe(params))。这是您服务器本身的页面。由于帮助程序和容器页面位于同一个域中,因此它应该可以工作。该技术很受欢迎,例如Facebook将其用于Javascript api。

答案 1 :(得分:0)

默认情况下,如果浏览器中的安全限制与父页面位于不同的域中,则会阻止访问iframe中的文档。当然,这应该是应该的。

我相信这甚至会阻止检查iframe的当前位置,但这很容易测试。如果它是可访问的,那么您可以轮询iframe的位置,并且只要iframe中的页面更新,就会附加一个随机的查询字符串参数。将该参数与上一轮调查的值进行比较会告诉您它是否已更改。

然而,正如我所说,我怀疑这是不可能的。

修改:这个问题表明它只能用于初始的src属性:How do I get the current location of an iframe?

答案 2 :(得分:0)

我得到的信息是,通过将parent.location(来自iframe)设置为具有这样的哈希数据“mydomain.com/mypage#mymessage”

可以实现这一点