2016-11-18 1 views
0

Pour Firefox et Chrome, j'essaie de remplacer le message par défaut affiché par le navigateur pour la fonction onbeforeOnLoad. Voici les questions que j'ai trouvéRemplacer Window.onbeforeOnLoad Message et effectuer une action sur Stay Page et Leave Page?

  1. Je n'ai pas pu ignorer le message même si je l'ai essayé mon coeur.
  2. Je ne suis pas du tout en mesure de capturer l'événement sur Stay Page ou Leave Page. Je veux effectuer des actions comme si c'est Stay Page Do This et si c'est Leave Page do This.Il n'est même pas afficher le message d'alerte pour l'événement.

S'il vous plaît trouver le code que j'ai essayé:

window.onbeforeunload = function(e) 
{ 
    alert(e); 
    var myMessage = 'Hello.'; 
    e.returnValue = myMessage; 
    return dialogText; 

}; 

Essayé ce ainsi:

window.onbeforeunload = function() { 
    return 'Hello!'; 
} 
+0

Copie possible de [Comment puis-je remplacer la boîte de dialogue OnBeforeUnload et la remplacer par la mienne?] (Http://stackoverflow.com/questions/276660/how-can-i-override-the-onbeforeun-dialog-and -replace-it-with-my-own) –

+0

Vous pouvez vérifier l'explication que j'ai donnée ici (avec des exemples concernant chacun des navigateurs): http://stackoverflow.com/questions/38879742/is-it-possible-to- afficher-un-message-personnalisé-dans-le-beforeunload-popup/38880926 # 38880926 – Dekel

Répondre

0

voir other stack overflow post

La réponse est tout simplement que vous ne pouvez pas ignorer le message onbeforeunload .

Vous pouvez cependant faire quelque chose avec le message, par exemple:

$(document).ready(function() 
{ 

    $(window).on("beforeunload", windowBeforeUnload); 

    $("#reeditbuttonjs").on("mouseenter", stopPopup) 
      .on("mouseout", function() 
    { 
     $(window).on("beforeunload", windowBeforeUnload); 
    }); 
}); 


function stopPopup() 
{ 
    $(window).off("beforeunload"); 
} 


function windowBeforeUnload() 
{ 
    return "You have unsaved data!"; 
} 

Cette fonction éteindrais la fonction unbeforeunload quand il a couru une fois.