如何将iframe中的变量传递给父窗口?

时间:2014-10-30 16:02:59

标签: javascript c# asp.net iframe colorbox

我有一个colorbox父页面,其中包含一个带有不同iFrame的TabContainer,用于第二个选项卡,其中对数据库进行了更改,需要更新父窗口的文本框。

enter image description here

2 个答案:

答案 0 :(得分:1)

不幸的是,您不能直接跨iframe的边界进行交互,因为这会带来安全风险。

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

答案 1 :(得分: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