mootools将变量存储在IE中iframe的父级中

mootools store variable in the parent from iframe in IE

本文关键字:iframe IE 变量 存储 mootools      更新时间:2023-09-26

我使用milkbox来显示一个覆盖窗口,覆盖基本上是一个iframe。

我有一些js代码在iframe和body.unload事件中运行,我想在父文档中存储一些内容。

把它想象成这个

->  overlay is open:
     bla...
     bla...
     function store() { window.parent.document.store('myVar',var);}
     document.body.onunload = store;
<- overlay got closed
   onClose event gets triggered
   var myVar = document.retrieve('myVar');

在这一点上,我应该有我从iframe存储的var。问题是只有IE不想检索这个。我尝试了window.parent.myVar=myVar,当onClose事件被触发时,它不会被识别。。。

我试着把它放在窗户里,什么都没有。。。就好像iframe中发生的一切都是分开的。。。这不是跨域!那么为什么会发生这种情况呢?

我试过chrome和firefox,它们都能正常工作。只有疯狂的IE不想让我存储在检索中的东西。

请帮忙!!

如果它们来自同一个域,并且我们可以排除安全性问题,这将起作用:

parent和iframe都必须包含mooTools

父窗口

// Within your onClose handler:
 var myVar = $(document).retrieve('myVar'));
 alert(myVar);

Iframe:

 var store = function() {
        $(window.parent.document).store('myVar','123');
    }
 window.addEvent("beforeunload", store);

在IE7 IE8 FF11中测试成功!