1

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

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

A 有没有其他方法可以获取 B 的 url?

4

2 回答 2

1

于 2009-09-30T23:07:12.803 回答
0

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

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

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

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

于 2010-05-04T17:58:51.100 回答