如何获取将另一个页面嵌入到不同源域的iframe中的网页的网址

时间:2009-09-30 23:02:44

标签: javascript html dom cross-domain same-origin-policy

网页A嵌入在网页B内部的iframe中.A和B位于两个不同的域上,因此相同的源策略阻止A像这样访问B的属性;

location = window.top.location.href // emits a "Permission denied" error

A有没有其他办法可以获得B的网址?

2 个答案:

答案 0 :(得分:1)

No

答案 1 :(得分:0)

如果您可以控制这两个域,则可以尝试使用EasyXDM等跨域脚本库,它可以包含跨浏览器的怪癖,并提供易于使用的API,以便在不同域之间的客户端脚本中进行通信使用该浏览器的最佳可用机制(如果可用,例如postMessage,否则使用其他机制)。

警告:您需要控制两个域才能使其工作(“控制”意味着您可以在两个域上放置静态文件)。但是您不需要任何服务器端代码更改。

在您的情况下,您将javascript添加到您的一个或两个页面中以查看location.href,并且您将使用该库从一个页面中的脚本调用到另一个页面中的脚本。

另一个警告:这里有安全隐患 - 请确保您信任其他域的脚本!