我在表單頁面上有一個按鈕,打開彈出窗口,用戶可以在提交表單之前計算各種選項的價格。關閉彈出窗口後重新啓用按鈕
但是,我希望打開彈出窗口的按鈕在窗口打開時被禁用,並且在關閉時啓用。
禁用按鈕很容易: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