我使用此代码来演示相同域上的概念:
家长:
<html>
<body>
<form>
<input id="details" name="details">
<input type="button" name="choice" onClick="window.open('http://domainB.com/popuppage.html','popuppage','width=850,toolbar=1,resizable=1,scrollbars=yes,height=700,top=100,left=100');" value="Open popup">
</form>
</body>
</html>
和弹出文件:
<html>
<head>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function sendValue (s){
var selvalue = s.value;
window.opener.document.getElementById('details').value = selvalue;
window.close();
}
// End -->
</script>
<form name="selectform">
<input name="details" value="">
<input type=button value="Copy input to parent opener" onClick="sendValue(this.form.details);">
</form>
</body>
</html>
这很好用,但是由于弹出窗口对父页面的内容进行了修改,window.opener.document.getElementById('details').value = selvalue;
出于安全原因,这在跨域示例中不起作用。我不想修改父级上的内容,我只想向父级脚本传达一个值,所以我需要父级上的一个侦听器脚本来参加关闭时从弹出窗口发送的信息。这可能吗?备择方案?