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还是与您调用它的域相同的页面?因为这个错误可能是因为您在不同的(子)域上有原始窗口和新窗口。。。