2014-10-30 104 views

回答

1

不幸的是,你不能直接跨越一个iframe的边界互动,这会带来安全风险。

一种解决方法是更改​​iframe中的url以包含#anchor值或?querystring,然后从父级读取iframe的url。

+0

以及如何从父级读取iframe的网址? – 2014-10-30 16:12:39

+0

你可以在iframe的DOM对象上使用'contentWindow.location.href'。例如:'var TheLocation = document.getElementById('myframe')。contentWindow.location.href;' – 2014-10-30 16:15:37

+0

你也可以从父级设置位置,所以这可以在两个方向上工作。 – 2014-10-30 16:16:29

0

我希望你已经试过postMessage,这是一个JavaScript API,但有浏览器的限制。

父母页面可以发布这样的消息。

var win = document.getElementById("iframe").contentWindow 

win.postMessage(
    "value", 
    "iframe-domain" 
); 

而且的iframe页面可以收听这样的消息。

<script> 
function listener(event){ 
    if (event.origin !== "[parent-page-domain]") 
    return; 

// operate with event.data 
} 

if (window.addEventListener){ 
    addEventListener("message", listener, false) 
} else { 
    attachEvent("onmessage", listener) 
} 
</script> 

源 - http://javascript.info/tutorial/cross-window-messaging-with-postmessage