0

我有一个按钮,它打开一个带有图像列表的子窗口,用户可以单击该图像列表,该按钮将参数中的值发送到一个函数,在该函数中,它将参数放在一个数组值中的变量中,该变量已在父窗口中创建,然后关闭子窗口。我目前的代码在 Chrome 和 Firefox 中工作,但在 IE 中不能工作,原因我不知道!如果可能的话,我希望它能够在 IE 7 中运行,尽管目前它甚至在 IE 9 中都无法运行。

父窗口代码:

var edge;

function getEdgeProfile(){
    myEdge = window.open('edge.html','','top=50,left=50,width=400,height=400');
}

子窗口代码:

<head>
<script>

function selectEdge(name, price, type){
    opener.edge = [name, price, type];
    window.close();
}

</script>
</head>
<body>

<img src="1.png" width="100px" height="100px" onClick='selectEdge("Square Edge 2mm ARRIS", 30.5, 1)'>
<img src="2.png" width="100px" height="100px" onClick='selectEdge("4 x 4 mm SINGLE BEVEL", 38.56, 1)'>
<img src="3.png" width="100px" height="100px" onClick='selectEdge("4 x 4 mm DOUBLE BEVEL", 46.49, 1)'>
<img src="4.png" width="100px" height="100px" onClick='selectEdge("V JOINT WITH SINGLE PENCIL", 38.56, 2)'>

</body>

我会添加一个 JSFiddle,但它会打开一个单独的页面,所以我不能~任何帮助表示赞赏!

4

1 回答 1

1

当您关闭弹出窗口时,弹出窗口分配的数据将丢失。(在 IE 中)

我建议从弹出窗口中调用一个函数到开启器,并将数据作为参数。然后该函数将数据设置(复制)到 opener 中的变量。所以,这应该工作:(
尚未测试)

子窗口:

function selectEdge(name, price, type){
    opener.setEdge(name, price, type);
    window.close();
}

父窗口:

function setEdge(name, price, type){
    edge = [name, price, type];
}
于 2012-11-21T12:08:34.720 回答