您的位置:首页 > 运维架构

IE11中使用window.open()方法获取不到参数解决方法

2014-05-21 11:16 483 查看
在父页面中使用window.open()的方法打开
<pre class="javascript" name="code">   var selectUrl = USER_SELECT_URL + params.join("&");

var windowName = "PersonSelect";

var openWindow = window.open(selectUrl,windowName, "xxxx");

openWindow.result = resultName;

子页面中获取父页面中的参数:



if (window["result"] && window["result"] != "") {
var allRecords = store.getRange(0, store.getCount());

var data = [];
for (var i = 0; i < allRecords.length; i++) {
data.push(allRecords[i].data);
historyArray.push(allRecords[i].data.type + ":" + allRecords[i].data.id);
}

var str = JSON.stringify(data);

opener.window[result] = str;



使用代码之后发现很奇怪,IE8可以获取到window["result"] ,IE9没测试,Chrome也可以获取到,但是IE11永远报属性未定义,完全不能理解为什么。

window["result"] ,window.result  全都是未定义。然后返回值就更加取不到了。。。

最后改用了window.shoModalDialog()方法,就可以搞定了。 var selectUrl = USER_SELECT_URL + params.join("&");
var windowName = "PersonSelect";
var openWindow = window.showModalDialog(selectUrl,windowName,"xxxx");


子页面中使用 var str = JSON.stringify(returnValue);
window.returnValue = str; // 作为父窗口window.showModalDialog的返回值
window.close();就妥妥的了,openWindow就是子页面的returnValue。





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ie11