18 votes

Comment fermer un onglet Firefox à partir d'un script Greasemonkey?

J'ai un script utilisateur greasemonkey avec cette seule ligne de code...

window.close();

mais Firefox n'autorise pas un script utilisateur à fermer une fenêtre (comme indiqué par un message d'erreur dans la console d'erreurs)

Y a-t-il une solution à ce problème?

31voto

M.N Points 4106

Vous devez modifier les paramètres de configuration de Firefox (about:config) pour permettre cela.

Étapes :

  1. Allez dans la barre d'adresse et tapez about:config
  2. Allez au paramètre dom.allow_scripts_to_close_windows
  3. Définissez sa valeur sur true

Maintenant, votre script peut fermer l'onglet avec 'window.close()'

ex.

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

6voto

DDRRSS Points 27

À ce stade, certains des -monkies autorisent l'utilisation de l'option @grant pour débloquer officiellement des commandes telles que window.close() sans passer par about:config. Par exemple, dans Tampermonkey:

// @grant window.close
// @grant window.focus

(Le dernier grant vous permet de recentrer le navigateur sur votre fenêtre.) Cela éliminerait l'erreur.

EDIT: Comme @baptx le mentionne correctement dans les commentaires, les options de sécurité du navigateur doivent également être configurées pour autoriser les scripts à fermer les fenêtres.

4voto

Bhavya Shah Points 1

Comme Firefox traite le code Greasemonkey avec les mêmes privilèges que le code script sur les sites externes, il n'est pas possible de permettre uniquement au code Greasemonkey de fermer les fenêtres, mais pas aux scripts réguliers.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X