2013-11-24 50 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