J'ai une situation où je veux confirmer qu'un utilisateur est toujours autorisé à modifier une page lorsque la page est mise au point. Cela les empêchera d'abandonner la fonction d'éditeur dans un onglet, puis de revenir à modifier dans l'onglet d'origine, ou d'abandonner la fonction de rédaction, puis d'utiliser le bouton RETOUR du navigateur pour revenir à la page où ils peuvent encore modifier. window.onfocus fonctionne parfaitement dans IE, FF et Safari, mais pas dans Chrome. Est-ce correct? Est-ce que je manque quelque chose d'évident? Y at-il un travail autour? Voici le code qui fonctionne dans IE, FF et Safari:L'événement window.onfocus ne se déclenche pas dans Google Chrome?
$(window).bind('focus', function() {
$.getJSON("do_check.php", {id: 'foo'}, function(data){
if (! data.SUCCESS) {
$("#not_editor_dialog").dialog('open');
}
});
});
Notez que le lie au-dessus de l'événement avec jQuery, mais la version jQuery moins échoue également dans Chrome:
window.onfocus = function() {
etc.
};
Merci !
avez-vous essayé la méthode jQuery '.focusin'? – jantimon
Il s'avère que je suis un idiot (je déteste quand cela arrive). Le problème n'était pas lié à l'événement de mise au point, mais avec la mise en cache de Chrome dans la réponse getJSON, il ne détectait donc pas la modification sur le serveur principal. J'ai été induit en erreur parce que cela fonctionnait avant, et la seule chose que j'ai changé (je pensais) était quel événement j'utilisais, mais apparemment dans mon processus "mon truc Chrome en n'utilisant pas la réponse en cache" bidouille. –