Si vous lisez ce blog, vous savez sûrement qu'il est très mal d'utiliser les attributs target="_blank"
. Cet attribut a l'inconvénient de dérouter même les utilisateurs les plus habitués, alors vous comprendrez aisément à quel point il est catastrophique pour un utilisateur néophyte.
Cependant, Firefox intégrait depuis longtemps en interne un système pour empêcher les liens en target="_blank"
de s'ouvrir dans une nouvelle fenêtre. Il existait depuis quelques versions déjà une préférence accessible via about:config
qui permettait d'annuler ce comportement. Cette préférence s'appelait browser.block.target_new_window
.
Cette préférence a disparu dans Firefox 1.0. Les développeurs ont maintenant ajouté un système expérimental plus puissant et disponible directement dans les options de Firefox. Pour activer ces options, il faut modifier la préférence browser.tabs.showSingleWindowModePrefs
et la mettre à true
. Vous pouvez alors réouvrir vos options dans la section « Avancé » et vous trouverez ces nouvelles options dans la partie « Navigation par onglets ».
Donc messieurs les développeurs web, vous n'avez plus aucune raison de mettre cet attribut puisque tous les utilisateurs de Firefox auront bientôt activé ce blocage :-)
PS: Il semblerait que cette option fasse un peu plus de chose que la version précédente puisqu'elle n'intercepte pas seulement les liens en target="_blank"
mais aussi les popups ouvertes par un window.open
. Déroutant la première fois, mais cela ne semble pas ennuyer mon Dotclear.
ÉDITION
Finalement, cette nouvelle fonctionnalité ne me plait pas, et il semblerait que je ne sois pas le seul.
Cependant, grâce aux valeureux guerroyers de MozillaZine, j'ai découvert l'existence d'une seconde préférence : browser.link.open_newwindow.restriction
. Celle-ci doit être un moyen de paramétrer le nouveau système de fenêtre unique et possède une valeur par défaut de 0.
Si vous modifiez cette valeur à 1, vous retrouverez l'ancien comportement de browser.block.target_new_window
qui ne bloquait que les attributs target
et pas les scripts d'ouverture de fenêtre.
2006-05-31
Depuis Firefox 1.5, l'option est disponible de base et le comportement est correct. Une capture d'écran pour les gens qui ne retrouverait pas l'option :
1 De Hadrien -
Alors ça ça ne me plait pas du tout XD
Je veux juste bloquer le target="_blank" et rien d'autre. Grrrr !
2 De Cédric -
Sympa les options firefox, mais ma v1 n'a pas ce choix sous "ouvrir les liens...". Surprenant. Je cherche.
Cédric
3 De Hadrien -
browser.link.open_newwindow.restriction m'a sauvé ! ^^
4 De Christophe -
MAGNIFIQUE :-) Moi qui cherchais ça depuis longtemps :-) Merci Anubis ;-)
5 De Talou -
Merci du tuyau ! Sous linux, Firefox n'a pas l'option configurable, j'utilise Single Window, qui permet de choisir d'ouvrir les popups ou non dans des onglets aussi... http://www.spuler.us/extensions/singlewindow.htm
6 De François -
Marrant, j'étais en train d'écrire exactement le même billet. Du début à la fin :-)
7 De Batmat -
Super cette option Vincent. Je me demandais si j'allais être obligé d'installer une extension pour faire ça... Eh ben non.
En ce qui concerne le target="_blank", je reprendrai en substance ce qu'avait dit Éric ici : http://cybercodeur.net/index.php?idmessage=1088#archive1088
L'ouverture d'une nouvelle fenêtre déroute le débutant et *énerve* passablement l'habitué. Comme je crois pouvoir me définir en tant qu'habitué, je témoigne qu'effectivement, l'ouverture dans une nouvelle fenêtre me rend hystérique...
Talou> euuu, si : chui sous linux et tout ce qu'a décrit Vincent fonctionne parfaitement (firefox 1.0).
Bon, la série de fautes, comme d'hab maintenant : Vincent> version précédent => précédente popups ouvertes pas => par
ayèèèèèèèèèèèèèèèèè
8 De alex_kio -
Bonjour,
la deuxième solution avec browser.link.open_newwindow.restriction ne fonctionne pas chez moi avec FF1.0 sur WinXP. Est ce du fait d'une installation peut propre car j'ai toujours la variable browser.block.target_new_window qui ne fonctionne pas non plus.
Par contre la première solution de l'article fonctionne mais peut effectivement poser problème pour certains sites avec Popup.
9 De Anubis -
Je ne sais pas alex_kio, je pense que le fait que cette fonction soit expérimentale fait qu'elle ne s'installe peut-être pas encore correctement. Essaye de supprimer la variable browser.block.target_new_window de ton pref.js, ça peut peut-être remédier au problème.
10 De alex_kio -
Merci pour cette réponse, mais ça ne change rien. J'ai essayé toutes le combinaison et rien à faire.
Encore Merci
11 De chris -
c nul , on n'a parfois besoin d'un service s'ouvre dans une fenêtre à part.
si le créateur d'un site utilise mal la fonction "_blank" et bien il faut zapper son site c tout
on n'a pas à toucher à la création de quelqu'un
12 De Calimo -
Pour browser.link.open_newwindow.restriction il y a la possibilité de la mettre à 2. Cela permet d'ouvrir les window.open uniquement quand la taille du popup est spécifiée. Bien mieux que 1 qui permets à trop de sites d'ouvrir une nouvelle fenêtre sans qu'il n'y en ait réellement besoin, là les seuls soucis que me causait cette technique.
13 De JRL -
".. Depuis Firefox 1.5, l'option est disponible de base et le comportement est correct. Une capture d'écran pour les gens qui ne retrouverait pas l'option..."
Et bien non ! Car à cette place dans cet onglet des option (vers. 1.5.06) j'ai un écran vide avec une phrase type graphique en bas en rouge gras italique qui dit " <tab label="&prefPanel.links;"/>
-^ "C'est a chaque mise à jour la même chose, que ce soit chez moi ou au bureau ...
Merci de m'indiquer comment y remédier.
Amicalement JR
14 De Vincent -
Il y a de grandes chances qu'une de vos extensions pose problème. Si ce n'est pas le cas, il peut aussi s'agir d'un problème dans la traduction.
Avez-vous essayé en lançant Firefox en safe-mode ? option normalement disponible dans votre menu Démarrer
15 De Stopi -
Bonjour, je vois que beaucoup de gens ont leur avis sur ce qui est bon ou pas bon.
Alors c'est parti, je donne le mien : il est double
Bref, ce n'est pas parce que certains sites usent et abusent du "n'importe quoi" en matière de pop-up, qu'il faut que le navigateur se permette d'handicaper tous les autres sites qui eux font un usage intelligent d'un des outils qu'on a mis à leur portée : le fameux '_blank'. Et ce disant, je rejoins l'avis de chris sur la propriété intellectuel des créations issues de l'esprit humain des développeurs web.
16 De Vincent -
Bravo pour cette présentation argumentée, elle semble représenter ce que pas mal de gens pensent de cet attribut qui ne semble pas faire tant de mal à notre cher web.
Et pourtant, comme toujours, il s'agit d'une vision à trop court terme. Comme tu le dis, tu es parfois étonné par le comportement de certains liens. En tant qu'utilisateur avancé, tu sembles avoir une bonne connaissance des pratiques des développeurs web aujourd'hui. Mais tu le dis toi-même, tout cela implique souvent des frustrations, même pour un utilisateur connaissant bien son navigateur.
Dans ton argumentation, tu ne sépares pas les popups des pages. Or une popup est censé fournir une information supplémentaire en rapport avec la page en cours là où la page est un changement complet de contexte.
Pour ce qui est des popups, il est souvent utile de les utiliser pour fournir à l'utilisateur une aide contextuelle par exemple. Ceci est parfaitement faisable sans l'attribute target en utilisant JavaScript, je laisserai donc ce point de côté.
Pour ce qui est des pages, ne penses-tu pas qu'il serait plus simple pour tout le monde si il existait une convention assurant l'utilisateur qu'un clic sur un lien ouvrira la nouvelle page dans la même fenêtre ? Ainsi plus besoin de réfléchir. Si je ne souhaites pas quitter la page en cours, j'utilise mon navigateur pour ouvrir le lien dans une nouvelle page ou un nouvel onglet, toujours de la même manière.
Je doute qu'il existe vraiment de bonnes raisons pour justifier à un utilisateur qu'en tant que webmaster, nous avons le droit de décider comment il doit naviguer.
Un des principes fort de l'expérience utilsiateur est qu'une bonne interface graphique se comporte comme l'attend l'utilisateur. S'il est incapable de savoir comment se comportera un lien, alors il en resortira forcément de la frustration et de la déception.