2012-08-24 49 views
1

如何檢測用戶是否有意離開他的當前頁面並將其重定向到我網站上的任何頁面是他們的任何可以處理此事件的JavaScript函數在我的網頁超過25個鏈接檢測用戶是否有意從其頁面重定向

<script type="text/javascript"> 
if(//user clicks a link) 
confirm("do you want to continue ?"); 

</script> 

是可以檢查是否有鏈接,在用戶點擊的頁面

+0

'confirm'和'alert'去實在太差了用戶體驗。所以只有在絕對必要時才使用它們。 – futuregeek

回答

4

在此代碼將攔截在你的網頁鏈接的所有點擊他們的任何JavaScript函數。

$("a").click(function() { 
    // this.href will be the href of the link they clicked on 
    // return false from this function if you want to abort the click on the link 
}); 

僅供參考,除非有你的頁面非常特殊的情況下,它是一種令人厭惡的強制用戶確認他們確實想去他們只是點擊了該鏈接。你能想象如果你必須確認每次點擊,網絡瀏覽器會有多糟糕。

還有一種通用的方式來提示用戶是否想使用onbeforeunload事件離開您的頁面。

window.onbeforeunload = function(e) { 
    return 'Are you sure you want to leave?'; 
}; 

注意:除非有非常特殊的情況,這也是令人討厭的。

+0

哦,對了!我應該想到這個謝謝,但onbeforeunload是一個事件,只能顯示一條消息給用戶和瀏覽器不會讓你檢查他是否想要2離開頁面或留在它,所以它不能幫助我,我可以做這相反,如果我想指定一些超鏈接來觸發事件我給我所有的標籤類,它會是這樣的:$(「。redirected」)。click(function(){// do something} );這樣只有那個class wld的標籤纔會被觸發 – Sora

+0

@Sora - 是的,如果你可以用'$(「。redirected」)將它縮小到只有一些鏈接標籤,那就更好了。 – jfriend00

+0

是的,我只是想檢查用戶是否點擊一個指定的鏈接不是所有的人我可以看到我可以得到的煩人的結果 – Sora

1
window.onbeforeunload = function(e) { 
    return 'Are you sure you want to leave?'; 
}; 

請記住,這不是一個正常事件 - 您不能以標準方式綁定它。

檢查值?這取決於你的驗證框架。

在jQuery中,這可能是這樣的(非常簡單的例子):

$('input').change(function() { 
    if($(this).val() != "") 
     window.onbeforeunload = function(e) { 
      return 'Are you sure you want to leave?'; 
     }; 
}); 
+0

你不指定一個字符串到'window.onbeforeunload' - 你指定一個函數返回一個字符串。 – jfriend00

+0

我的不好!有理由。謝謝@ jfriend00 –

相關問題