Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带2个html文件的弹出窗口如何获得弹出关闭事件?_Javascript_Html - Fatal编程技术网

Javascript 带2个html文件的弹出窗口如何获得弹出关闭事件?

Javascript 带2个html文件的弹出窗口如何获得弹出关闭事件?,javascript,html,Javascript,Html,我按如下方式打开弹出窗口: function showWindow(url){ var newwindow=window.open(url,'name','height=300,width=350'); newwindow.onbeforeunload = function () { alert("closed"); }; } window.onbeforeunload = function () { alert("cl

我按如下方式打开弹出窗口:

function showWindow(url){
    var newwindow=window.open(url,'name','height=300,width=350');
        newwindow.onbeforeunload =  function () {
            alert("closed");
        };
}
window.onbeforeunload = function () {
    alert("closed");
};
function closeWindow() {
    newwindow.close();
}
<button type="button" onclick="window.opener.closeWindow();">G</button>
HTML

bbb

aaa

在popup.html中:

<html>
<head>
<script type="text/javascript">

</script>
</head>

<body>
a: <input type="text" id="name"/> </br>
a: <input type="text" id="surname"/></br>
a: <input type="text" id="cardNumber"/></br>
a: <input type="text" id="way"/></br>
a: <input type="text" id="freePlaces"/></br>

<button type="button" onclick="window.close()">G</button>
</body>
</html>

a:
a:
a:
a:
a:
G
但当我使用window.close关闭弹出窗口时,不会调用onbeforeunload。
如何解决此问题?

不要在打开窗口的函数中设置
onbeforeuload
,而是在新窗口(
popup.html
)上,如下所示:

function showWindow(url){
    var newwindow=window.open(url,'name','height=300,width=350');
        newwindow.onbeforeunload =  function () {
            alert("closed");
        };
}
window.onbeforeunload = function () {
    alert("closed");
};
function closeWindow() {
    newwindow.close();
}
<button type="button" onclick="window.opener.closeWindow();">G</button>
但是,为了能够关闭新窗口,请在“开启器”页面上设置如下功能:

function showWindow(url){
    var newwindow=window.open(url,'name','height=300,width=350');
        newwindow.onbeforeunload =  function () {
            alert("closed");
        };
}
window.onbeforeunload = function () {
    alert("closed");
};
function closeWindow() {
    newwindow.close();
}
<button type="button" onclick="window.opener.closeWindow();">G</button>
然后在新窗口中调用它,如下所示:

function showWindow(url){
    var newwindow=window.open(url,'name','height=300,width=350');
        newwindow.onbeforeunload =  function () {
            alert("closed");
        };
}
window.onbeforeunload = function () {
    alert("closed");
};
function closeWindow() {
    newwindow.close();
}
<button type="button" onclick="window.opener.closeWindow();">G</button>
JS

function toggleMe(url, closeMe){
    var newwindow = window.open(url,'name','height=300,width=350');
    if (closeMe) {
        newwindow.close();
    }
}
window.onbeforeunload = function() { return "closed"; };
// Hint: I used return "text" because alert doesn't seem to work on Chrome

popup.html: HTML

<button type="button" onclick="toggleMe('popup.html',false);">bbb</button>
<button type="button" onclick="window.opener.toggleMe('popup.html',true);">G</button>
<!-- Make sure popup.html is the same as above -->

好的,做了一些编辑,很抱歉。。。现在应该好了!我无法从opener调用该方法。it sets exception“it sets exception”是什么意思?未捕获的安全性错误:阻止原点为“null”的帧访问原点为“null”的帧。协议、域和端口必须匹配。您的
popup.html
是外部URL还是与您调用它的域相同的页面?因为这个错误可能是因为您在不同的(子)域上有原始窗口和新窗口。。。