2014-04-01 67 views
0

我有我的網站下面的HREF:「離開網站」警報

a href="http://www.google.com" name="external" onclick="confirmExit(this.name) 

我只是無法弄清楚如何使我的網站的用戶逗留,如果他/她不想要離開點擊「取消」(下面的不完整代碼)。

function confirmExit(name){ 
    if(name == "external"){ 
     if(confirm("Go to external site?")){ 

     } 
    } 
} 

jQuery/Ajax不是一個選項。

+5

如果用戶瀏覽你的網頁,他很可能要離開您的網頁... – Teemu

+1

基本上是:'如果(確認(! 'foo')){return false; }'和'onclick =「return confirmExit();」'。從onclick返回false有效地禁用點擊。 –

+1

剛剛串門說我討厭彈出窗口這樣的,和你怎麼不敢改寫措辭說「單擊取消留在本站的」 – tymeJV

回答

3

只是返回false。

function confirmExit(name){ 
    if(name == "external"){ 
     if(!confirm("Go to external site?")){ 
      return false; 
     } 
    } 
} 

如果您希望這種情況發生的所有鏈接,甚至當用戶關閉選項卡,請@megawac's answer

+0

這不起作用 –

+0

假設參數'name'實際上是設置爲「外部」,從事件返回false應該防止它發生。 – aurbano

+0

@Teemu我沒有測試過這個,但在點擊返回false時,應該防止發生點擊事件,這應該反過來防止onload事件發生嗎? – aurbano

1

你不需要一個函數。我建議你使用這個:

$(function() { 
    $('a[name="external"]').click(function() { 
     if (!confirm("Go to external site?")) { 
      event.preventDefault(); 
     } 
    }); 
}); 

如果你使用這個,你不需要的onclick =「confirmExit(this.name)」添加到的一切。只需添加上面的內容即可完成您的工作。

你可以做到這一點,如果你想要的jsfiddle的行爲:

window.onbeforeunload = function(){ return "Are you sure you want to leave the page?"; } 
2

使用window.onbeforeunload用戶離開網頁

$(window).bind("beforeunload", function() { 
    if(true) { //display confirm dialog? 
     return "Are you sure you want to leave?"; 
    } 
}); 
+0

的jQuery/AJAX不是一個選項OP –

0

使用return falseconfirmExit()函數內部之前顯示一個確認對話框,也是在在線使用return的JavaScript像

HTML

<a href="http://www.google.com" name="external" onclick="return confirmExit(this.name)">Some Link</a> 
            //Use return here also ---^ 

JS

function confirmExit(name){ 
    if(name == "external"){ 
     if(!confirm("Go to external site?")){ 
      return false; 
     } 
    } 
} 

DEMO