2013-11-24 49 views
2

我在表单页面上有一个按钮,打开弹出窗口,用户可以在提交表单之前计算各种选项的价格。关闭弹出窗口后重新启用按钮

但是,我希望打开弹出窗口的按钮在窗口打开时被禁用,并且在关闭时启用。

禁用按钮很容易:calculatorButton.disabled = true;在点击事件中工作得很好。

我不能解决的是如何在弹出窗口关闭时再次启用按钮。

newWindow.onunload没有工作,也没有newWindow.onbeforeunload

+0

你使用插件为您的弹出或什么? –

+0

作为一个轻微的解决方法,您可以使用js页内弹出窗口(这也远不那么讨厌)。那么附加这个事件很容易 – amdixon

+0

我没有使用插件,ebram。我只是在为一个学校任务忙着使用javascript,试图学习东西。 “js in-page popup”,amdixon是什么意思? 现在,我正在使用: 'var newWindow = window.open()' – Obversity

回答

0

您可以设置一个计时器来检查孩子的窗口是否已关闭:

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

+1

谢谢,这实际上是一个很好的主意,虽然我刚刚意识到,我实际上并不需要*按钮禁用;如果用户在计算器已经打开时决定点击它,我只需要它不做它通常会做的事情。不管怎样,谢谢。 :) – Obversity