2012-10-03 4 views
1

J'ai la page html MyPage.aspx (générée à l'aide de ASP.Net). Lorsque l'utilisateur tente de quitter cette page, je dois fermer la fenêtre. L'utilisateur ne devrait pas pouvoir revenir en arrière ou naviguer vers une autre page.Fermer la fenêtre du navigateur pendant le déchargement

Lorsque j'ai utilisé window.close() dans l'événement window.onbeforeunload, il demande une confirmation à l'utilisateur. "La page Web que vous consultez essaie de fermer la fenêtre. Voulez-vous fermer la fenêtre? "En cliquant sur" Non ", l'utilisateur peut échapper à la tentative de fermeture. Y at-il un moyen de fermer de force la fenêtre sans donner une option à l'utilisateur?

Référence:

  1. How can I close a browser window without receiving the "Do you want to close this window" prompt?
  2. Html javascript to open new window and close current window
  3. "Unknown Exception" when cancelling page unload with "location.href"
  4. Display confirmation popup with JavaScript upon clicking on a link
+0

Vous pourriez améliorer la question en expliquant pourquoi vous voulez empêcher l'utilisateur de naviguer dans les deux sens. –

+0

@Jack J'essaie de mettre en œuvre manuellement une fonctionnalité LogOut pour le site Web – Lijo

+1

Une solution fiable, cross-navigateur pour pourrait être difficile. Vous pouvez désactiver la mise en cache côté client pour la page afin qu'ils ne puissent pas y revenir depuis l'historique. – HackedByChinese

Répondre

3

Vous pouvez "truc" le navigateur comme ceci:

window.onbeforeunload = function() { 
    window.open('', '_self', ''); 
    window.close(); 
} 

Il semble fonctionner en chrome/safari/ie/ff: http://jsbin.com/olijig/1

Firefox semble têtu, mais il pourrait y avoir une autre façon faire la même chose en FF. Je devrais probablement dire que cette technique est en aucune façon standard et je ne le recommande pas du tout, et ce code pourrait casser dans de nombreux navigateurs en plus de Firefox.

MISE À JOUR

Il fonctionne réellement dans Firefox aussi (dernière version), mais pas les anciennes versions (j'ai essayé 3.6.1). Vous devez effectuer d'autres tests pour confirmer la compatibilité du navigateur.

+0

+1 pour la sorcellerie :) –

+1

Mis à jour la réponse avec plus d'informations sur le navigateur – David

1

Non, vous ne pouvez pas. L'utilisateur doit toujours être capable de contrôler tout ce qui se passe dans son navigateur.

1

Je ne suis pas certain à ce sujet, mais je crois que si vous avez une fenêtre ouvrir une autre fenêtre, la fenêtre parent peut fermer cette fenêtre enfant. Serait-il pratique d'avoir une page d'atterrissage qui ouvre votre application dans une fenêtre séparée qui pourrait ensuite fermer la fenêtre via javascript? Quelqu'un peut probablement élaborer plus, car je ne l'ai pas fait moi-même.

Questions connexes