2013-05-14 77 views
0

免責聲明 - 我應該注意我的JavaScript非常弱。如何才能使beforeunload事件僅在瀏覽器會話退出時觸發

我正在向我的網站插入代碼,因此它可以涵蓋用戶退出瀏覽器時的場景,他得到一句諺語「你確定要退出嗎?」的提示。一種確認消息。

我在試圖實現在我的網站這一塊的JavaScript的過程:

<script language="JavaScript" type0"text/javascript"> 

var foo = true; 

window.onbeforeunload = askBeforeExiting; 

function askBeforeExiting() { 
    if (foo) 
    return "Are you sure you want to leave this page?"; 
} 
</script> 

的代碼時嘗試退出瀏覽器不僅拋出一個確認消息。但是,當點擊該網站的另一部分的鏈接以及其他相關事件時,它也會引發確認。

有沒有辦法修改這段代碼只捕獲瀏覽器關閉場景?我得到這種情況,像從任務管理器中殺死瀏覽器或從PowerShell命令不能被捕獲。我只想在當前用戶會話中可能會退出瀏覽器的場景。

我一直在查看各種網絡示例,並通過代碼引用,似乎無法確切地跟蹤我想要做什麼。這甚至有可能嗎?

回答

2

我已經在頁面擁有表單之前完成了這個工作,我只想在表單發生更改時要求用戶確認。你可以做一些類似的事情,例如,將一個點擊事件附加到所有鏈接上,將foo設置爲false。喜歡的東西:

var links = document.getElementsByTagName('a'); 
for(var i = 0, l = links.length; i < l; i++) { 
    links[i].onclick = function() { 
     foo = false; 
    } 
} 

編輯:有你可能要考慮,這取決於你的網站很多其他的行動,但與所提供的信息,這應該是一個良好的開端,你因爲沒有直接的方法完成你以後的工作。

+0

如何提交表單,頁面刷新等。 – epascarello 2013-05-14 18:32:54

+0

是的,這隻適用於鏈接。我試圖展示一個如何做到這一點的例子,而不是OP所要解決的所有可能行動的詳盡清單。 – Duffmaster33 2013-05-14 18:37:14

+0

@ Duffmaster33是否有可用的操作列表? – 2013-05-14 19:02:44

相關問題