de la fenêtre.onbeforeunload ne fonctionne pas sur l'iPad?

Personne ne sait si le onbeforeunload événement est pris en charge sur l'iPad et/ou si il y a une autre façon de l'utiliser?

J'ai essayé un peu tout, et il semble que le onbeforeunload événement n'est jamais déclenchée sur l'iPad (navigateur Safari).

Plus précisément, c'est ce que j'ai essayé:

  • window.onbeforeunload = function(event) { event.returnValue = 'test'; }
  • window.onbeforeunload = function(event) { return 'test'; }
  • (les deux ensemble)
  • window.onbeforeunload = function(event) { alert('test')'; }
  • (toutes les fonctions ci-dessus, mais à l'intérieur de <body onbeforeunload="...">

L'ensemble de ces travaux sur le FF et Safari sur le PC, mais pas sur l'iPad.

Aussi, j'ai fait le code suivant juste après le chargement de la page:

alert('onbeforeunload' in window);
alert(typeof window.onbeforeunload);
alert(window.onbeforeunload);

Respectivement, les résultats sont les suivants:

  • true
  • object
  • null

Ainsi, le navigateur n'ont la propriété, mais pour quelque raison il ne veut pas me faire virer.

Les moyens que j'essaie de naviguer loin de la page en cliquant sur les boutons précédent et suivant, en faisant une recherche google dans la barre du haut, en changeant l'emplacement dans la barre d'adresse, et en cliquant sur un signet.

Quelqu'un a une idée sur ce qui se passe? Je serais grandement apprécier toute entrée.

Grâce

  • Merci à vous deux pour vos commentaires. Il doit être l'une des raisons que vous avez mentionnées. Malheureusement, il n'y a pas de documentation officielle d'Apple à ce sujet et d'autres limitations. J'espère qu'ils vont trouver une façon plus créative de l'activation de cette fonction, tout en empêchant l'utilisation malveillante d'elle. J'entends souvent dire que les gens accidentellement appuyez sur à partir de la page et de perdre toutes les données saisies dans un formulaire.
  • Avez-vous essayé d'utiliser addEventListener()?
  • Je suis sûr que beforeunload ne fonctionne pas sur Safari sur iOS. 🙁 Peut-être pas ce que vous cherchez, mais j'ai une suggestion pour de manière fiable test pour un travail beforeunload
  • Sur Mar 3'16, La window.onbeforeunload = function(event) { event.returnValue = 'test'; } ne fonctionne pas sur Chrome et Safari iOS 9.2.1 . J'aime vraiment onbeforeunload Parce que la page ne change pas, si je clique sur annuler.
  • Semble que ce problème a été résolu dans Safari et iOS 13
InformationsquelleAutor Art Zambrano | 2010-07-13