我在表单页面上有一个按钮,打开弹出窗口,用户可以在提交表单之前计算各种选项的价格。关闭弹出窗口后重新启用按钮
但是,我希望打开弹出窗口的按钮在窗口打开时被禁用,并且在关闭时启用。
禁用按钮很容易:calculatorButton.disabled = true;
在点击事件中工作得很好。
我不能解决的是如何在弹出窗口关闭时再次启用按钮。
newWindow.onunload
没有工作,也没有newWindow.onbeforeunload
。
我在表单页面上有一个按钮,打开弹出窗口,用户可以在提交表单之前计算各种选项的价格。关闭弹出窗口后重新启用按钮
但是,我希望打开弹出窗口的按钮在窗口打开时被禁用,并且在关闭时启用。
禁用按钮很容易:calculatorButton.disabled = true;
在点击事件中工作得很好。
我不能解决的是如何在弹出窗口关闭时再次启用按钮。
newWindow.onunload
没有工作,也没有newWindow.onbeforeunload
。
您可以设置一个计时器来检查孩子的窗口是否已关闭:
var child = window.open();
var id = setInterval(function() {
if (child.closed) {
clearInterval(id);
calculatorButton.disabled = false;
}
}, 100); // check every 100ms
这么说,我也不会禁用按钮,而检查closed
像这样:
var child = window.open();
calculatorButton.onclick = function() {
if (!child.closed) return;
// else do something
};
我从未使用closed
的方式:http://www.w3schools.com/jsref/prop_win_closed.asp。
谢谢,这实际上是一个很好的主意,虽然我刚刚意识到,我实际上并不需要*按钮禁用;如果用户在计算器已经打开时决定点击它,我只需要它不做它通常会做的事情。不管怎样,谢谢。 :) – Obversity
你使用插件为您的弹出或什么? –
作为一个轻微的解决方法,您可以使用js页内弹出窗口(这也远不那么讨厌)。那么附加这个事件很容易 – amdixon
我没有使用插件,ebram。我只是在为一个学校任务忙着使用javascript,试图学习东西。 “js in-page popup”,amdixon是什么意思? 现在,我正在使用: 'var newWindow = window.open()' – Obversity