修复iframe调用location.href

时间:2010-05-07 17:50:39

标签: javascript iframe cross-domain

我正在尝试使用iframe嵌入mapquest方向页面,例如http://www.mapquest.com/maps?1c=Ann+Arbor&1s=MI&1a=1440+Hubbard+St&1z=48109-2083&1y=US&1l=42.293437&1g=-83.724491&1v=ADDRESS&2c=Ann+Arbor&2s=MI&2a=930+N+University+Ave&2z=48109-1055&2y=US&2l=42.278558&2g=-83.737969&2v=ADDRESS。问题是至少有一个javascripts调用location.href导致脚本挂起。如果我没有弄错,这是因为我嵌入页面的页面位于不同的域中。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

您似乎需要使用“embeddable maps”功能而不是自行设置。

跨域DOMing是不行的,浏览器制造商努力确保您不会违反同源策略。这是一个主要的安全问题,所以它真的无法完成。

当我在网站上使用“链接到/嵌入”选项时,我会将此信息发回给我:

<iframe style="height: 270px; width: 450px;" src="http://www.mapquest.com/embed#b
/maps/m:map:12:42.293449:-83.724489::::::1:1:::::::::
/l::1440+Hubbard+St:Ann+Arbor:MI:48109-2083:US:42.293437:-83.724491:address::1:::
/l::930+N+University+Ave:Ann+Arbor:MI:48109-1055:US:42.278558:-83.737969:address::1:::
/io:1:::::f:en_US:M::/e" marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
</iframe>

因此看起来他们制作了自己的iframe内运行的脚本等。

修改

Google地图会显示嵌入地图上的路线,如果这是您的选项:Google Maps link