我有以下jquery函數,當他們有未保存的更改(類似於SO如何)並嘗試離開當前屏幕時提示用戶。爲什麼OnBeforeUnload用asp:LinkButton兩次觸發?
<!-- in my aspx page -->
<script type="text/javascript" language="javascript">
window.onbeforeunload = function()
{
if (HasPendingUpdates())
{
return "Changes you have made will not be saved.";
}
}
</script>
可正常工作,並顯示消息框,當用戶試圖點擊A HREF瀏覽掉或使用返回按鈕等我遇到的問題是,我的環節之一是asp:LinkButton
因爲它在離開頁面之前需要關閉一些服務器端代碼。當用戶點擊這個LinkButton
時,他們會得到兩次提示。
方案:
- 用戶點擊
LinkButton
- 提示出現和用戶點擊取消按鈕。
提示消失,用戶仍在屏幕上。好。
用戶點擊
LinkButton
- 提示出現,並點擊OK按鈕。
- 提示消失,並再次顯示相同的提示。
- 用戶再次單擊確定。
- 提示消失,用戶移動到下一個屏幕,一切都很好。
那麼,爲什麼我會得到第二個提示? OnBeforeUnload如何發射兩次?
我不分配公頃特別是對任何控制。 Jquery函數在頁面加載時執行,並將該函數分配給window.onbeforeunload。該頁面永遠不會被加載多次,所以Jquery代碼只能綁定一次。所有其他鏈接,後退按鈕等不會導致雙重提示。 – Kelsey 2010-02-10 19:08:35