Utiliser target="_blank" sur une page valid xhtml strict

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 941 fois - Téléchargée 21 fois


Contenu du snippet

Permet comme spécifié dans le titre, d'utiliser des liens avec l'option target="_blank" malgré une validation xhtml strict.
Bien sur, cette methode renvoit à un long débat, je ne vais pas m'etendre sur la fait qu'un doctype transitional accepte ces methodes, et bla bla...
je pense que c'est utile pour les liens vers des sites externes, avis aux autres cheaters :-)
Bien sur, ceci n'est qu'une adaptation que j'estime plus propre, d'une idée qui court déja beaucoup sur le net, je ne m'en attribue aucunement les merites... ni les critiques de la mehode elle meme :D :D

Source / Exemple :


function setlinks(linkclass)
{
	links = document.getElementsByTagName('a');
	for(i in links)
	{
		if (links[i].className==linkclass) // verifie que le lien est de la classe specifié, supprimez ce test et l'argument de la fonction si vous voulez appliquer l'evenement à touts les liens de la page
		{
			links[i].onclick=function linkblank(event) 
			{
				window.open(this.href,'_blank');
				return false;
			}
		};
	}
}
//puis appelez la function au load de la page, qui attend comme argument le nom de la class sur laquelle appliquer l'evenement.

A voir également

Ajouter un commentaire

Commentaires

hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1
"Il y a une astuce bien plus simple qui consiste à faire un : onclick="window.open(this.href); return false;""
-> Heuuu c'est justement ce que je fais, sauf que j'applique l'evenement de façon "dynamique" pour ne pas avoir à réecrire tout mes liens...

"Surtout que ton script fait que tous tes liens s'ouvrent dans une nouvelle fenêtre."
-> Non justement, seulement ceux qui font partie de la classe passée en paramêtre.


Faut que je prenne le temps de faire la modif proposée par JesusOnline, maintenant que les exams sont finis... y a plus que la flemme à combattre ^^
abdoulax
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

Il y a une astuce bien plus simple qui consiste à faire un : onclick="window.open(this.href); return false;"
Surtout que ton script fait que tous tes liens s'ouvrent dans une nouvelle fenêtre.

De plus je suis d'accord avec JESUSONLINE sur le fait de respecter les normes et non d'essayer de passer à travers le robot de validation.
Cependant il vrai que dans certain cas on peut avoir besoin de forcer l'ouverture dans une nouvelle fenêtre mais ce cas doit être exeptionnel ou sinon il faut se tourner vers du xhtml transitional.

Voilà mon avis,

Have fun
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1
C'est vrai, je suis d'ailleur passé en xhtml transitional pour ma part, mais comme je l'ai dit au dessus, je sais que pas mal de gens ont été ettoné par ça, et rien que notre conversation pourrait en interesser plus d'un.
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
ils l'ont enlevé de XHTML car c'est à l'utilisateur de choisir s'il veut ou non ouvrir une nouvelle fenetre. Etre valide XHTML c'est pas seulement avoir le petit logo mais c'est aussi respecter la philosophie qu'il y a derriere.
hvb
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
1
salut :) l'utilité peut en effet être critiqué, voir qualifié d'inexistante. Moi je dirais même que c'est pueril, lol...
Pour repondre à "pourquoi il s l'ont enlever", je pense (je sais pas en fait) que c'est pour une question de compatibilité avec des navigateurs "restreints" , mais le code devrait néanmoins marcher si ceux ci gèrent pas le target=_blank (moyennant peut etre un try catch,
et là on tombe dans le cheat pur et dur... )
Mais je me defend quand même, meme si j'avais dit que je ne m'etendrais pas, tu m'y oblige ^^ : J'ai refait entierement ma petite homepage, que j'ai montré à un collegue, en pronant un valid html 4.01 transitional amplement suffisant à mes besoins.
Mais en montrant ça à un collegue, celui ci s'est "payé ma tête" (façon hacker, "mouhahaha minable") en me sortant que LA NORME c'est xhtml strict. J'ai été le premier à argumenter contre cette idée, mais j'ai fini par m'avouer qu'il m'avait vexé, j'ai donc revu tout mon code (et mon css, bizarrement... c'était necessaire) pour le valider xhtml strict.
Et comme une seule page (celle des liens externes) posait encore problème avec cette fonctionalité, je me suis permis de la contourner.
Après reste la question, suis-je vraiment obliger de choisir pour l'utilisateur la façon dont il va naviguer, effectivement non,
peut etre meme que je vais le supprimer de ma page, mais j'ai remarqué que beaucoup de gens avaient recontré le problème, ce code et les commentaires qui suivent pourront donc, je pense, être utile.
Je mettrais à jour le code pour permettre, comme tu le suggère, d'appliquer plusieurs classe aux liens.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.