1. 程式人生 > >【web】a標籤點選時跳出確認框

【web】a標籤點選時跳出確認框

需求如下:

在跳轉連結前,需要判斷該使用者是否有許可權開啟頁面,沒有許可權的彈出一個確認框提示“沒有許可權”,有許可權的則直接跳轉頁面。

a標籤點選時跳出確認框
方法一:

<a  href="http://www.baidu.com" onClick="return confirm('確定刪除?');">[刪除]</a>

方法二:
<a onclick="confirm(‘確定要跳轉嗎?')?location.href='www.baidu.com':''" href="javascript:;">百度</a>

參考資料二:

①在html標籤中出現提示

<a href="http://www.baidu.com" onclick="if(confirm('確認百度嗎?')==false)return false;">百度</a>  

②在js函式中呼叫
function foo(){  
    if(confirm("確認百度嗎?")){  
        return true;  
    }  
    return false;  
 }    

對應的標籤改為:
<a href="http://www.baidu.com" onclick="return foo();">百度</a> 

注意事項:

我們這裡寫的是a標籤點選提交出現的跳轉事件,表單提交時,也是這麼做。
不管怎樣,你要記住的是(絕學祕籍),必須將return 寫在標籤裡,否則不管你是否點選確定,都會出現跳轉和表單內提交。

以上參考資料總結:

1.跳轉的方法:

1>. 把連線放在a元素的href屬性中進行頁面跳轉

2>. 使用location.href進行頁面跳轉

2.阻止跳轉的方法:

在click事件內使用return 或 return false; 返回,不繼續執行。——這裡引申出一個問題,click事件與href的執行先後順序

延伸:

click事件與href的執行先後順序

href=“#” 比click晚觸發,因此可以再href出發之前,在click事件內使用return 返回即可。

但也有例外的情況:

如下圖所示:

點選按鈕後,彈出彈窗,接著跳轉入了頁面(沒做其他操作)


click事件一般會存在250ms的延遲執行時間,目的是為了判斷時候是否會繼續點選(進行雙擊操作)。

在移動端的開發,click的延遲執行,可能會導致href被觸發!!!(事件冒泡暫不解釋)

因此若出現此種情況的出現,可以使用tap事件來代替click事件,即可解決。