2016-11-06 75 views
0
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title> 
     </title> 
     <meta charset="utf-8" /> 
     <link rel="stylesheet" type="text/css" href="css/custom.css" /> 
    </head> 
    <body> 
      <a href="http://www.google.co.in">Google</a> 
    <script type="text/javascript" src="js/jquery-3.1.1.min.js" ></script> 
    <script type="text/javascript" src="js/custom.js" ></script> 
    </body> 
</html> 

之前沒有表現出以下是custom.js警報卸載

$(window).on('beforeunload',function(){ 
    alert("abc"); 
}); 

我希望頁面之前,點擊鏈接後,將下一個頁面顯示報警代碼,但它沒有顯示。

+0

*我希望頁面在點擊鏈接後進入下一頁之前顯示警告* - 爲什麼?這對用戶來說非常煩人和不友善,這就是瀏覽器禁用它的原因。如果您聲明您嘗試使用此警報解決的問題,也許我們可以幫助您找到更好的方法來實現您的目標。 – Ryan

+0

嗯,我剛剛通過jQuery教程,這就是爲什麼我想這樣做。 –

+0

簽出[此](http://stackoverflow.com/a/1270421/5549391)答案和答案中的鏈接 – agDev

回答

1

鉻塊警示,因爲他們選擇這樣做。

你可以聽鏈接的點擊事件,並拋出一個確認,像這樣:

var link = document.querySelectorAll('a.confirmation')[0]; 
 

 
link.onclick = function() { 
 
    var check = confirm('Are you sure ?'); 
 
    if (check === true) { 
 
     return true; 
 
    } 
 
    else { 
 
     return false; 
 
    } 
 
}
<a href="http://www.google.co.in" class="confirmation">Google</a>

或使用jQuery

$(".confirmation").on('click', function() { 
 
    var check = confirm('Are you sure ?'); 
 
    if (check === true) { 
 
     return true; 
 
    } 
 
    else { 
 
     return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="http://www.google.co.in" class="confirmation">Google</a>

3

beforeunload效果很好,但在你的情況下,存在因使用被阻斷BU瀏覽器的警報沒有任何影響,所以你可以在控制檯打印,但你不能使用警報在beforeunload

上面的例子我使用過控制檯。在beforeunload

$(window).on("beforeunload",function(event){ 
 
    console.log("This works , but alert is blocked "); 
 
    
 
    // alert(""); this wont work and it's blocked by the browser due to window's object missing 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<a href="http://www.google.co.in">Google</a>