2016-03-21 12 views
0

tarafından yakalanan olmamak sayfadaki bir köprüyü tıklattığımda onberforeunload çağrılmıyor. Göstermek istediğim uyarı mesajı görünmüyor ve sayfa serbestçe yükleniyor.Sayfa çıkış Doğru onlar follwoing kodu kullanarak sekmeyi veya tarayıcıyı kapatmak için çalışıyoruz kullanıcıyı uyaran bir <code>onberforeunload</code> yöntemine sahip onberforeunload

Köprü seçildiğinde bir pop-up oluşturmanın birçok yolunu aradım ama hepsi div etiketlerinde bir ya da grup köprüyle ilgileniyorlar. Herhangi bir köprü seçilirse görüntülenecek bir pop-up görüntülemek isterim.

Neden sayfanın bir köprüyle geçtiğini yakalayan onbeforeunload neden değil? Benim onbeforeunload anlayışım, köprü çıkışlarını yakalamasının yanlış mı?

aşağıdaki kod güncelledik

GÜNCELLEME: Hala köprüler için çalışan ve tarayıcıya ve sekme kapatılması için çalışmıyor

window.onbeforeunload = closeIT; 
function closeIT() { 
     return 'here'; 
     if(searchOnGoing){ 
      return 'Ifs you leave the Youtube History page now the application will not finish'; 
     } 

}; 

. Bunu, içerik komut dosyasını sayfaya aktaran bir chrome uzantısında bir içerik komut dosyasının parçası olarak çalıştırıyorum. Bunun üzerinde bir etkisi olur mu?

Ayrıca bir itme yüküm var, merak ediyorum da bunun bir etkisi var mı?

window.onunload = function(event){ 
      //Do something 
    } 
+0

Bu köprüler için iş hem de (bkz [Bu örnekte] (http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeunload.htm)). Bence sadece 'event.returnValue ...' 'nizi geleneksel bir 'return' deyimine dönüştürmelisiniz (ve günlükten sonra taşıyabilirsiniz). – Quantastical

cevap

0

Aşağıdaki parçacık doğru şekilde onbeforeunload kullanır. Aslında

1

<body onbeforeunload="return myFunction()"> 
 
    
 
    <a href="google.com">Click me!</a> 
 
      
 
    <script> 
 
    function myFunction() { 
 
     return "Please don't go!\nThis works beautifully!"; 
 
    } 
 
    </script>

, bu tetiklemesi. Olayı bir tıklama etkinliği dinleyicisi aracılığıyla bir şekilde yakaladın mı? Neyse, bir tıklama etkinliği dinleyicisi yardımıyla bir uyarı gösterebilirsin. Aşağıdaki kod-snippet'i benzer bir sorudan kopyalanır: how to detect if a link was clicked when window.onbeforeunload is triggered? Burada, bağlantı tıklandığında öncelikli olayın nasıl önleneceği sorusu vardı.

var link_was_clicked = false; 
document.addEventListener("click", function(e) { 
    if (e.target.nodeName.toLowerCase() === 'a') { 
    link_was_clicked = true; 
    } 
}, true); 

window.onbeforeunload = function() { 
    if(link_was_clicked) { 
    link_was_clicked = false; 
    return; 
    } 
    //other code here 
}