begin process at 2008 08 28 21:39:09
1 233 395 membres
487 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISER TARGET="_BLANK" SUR UNE PAGE VALID XHTML STRICT


Information sur la source



Description

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

  • 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.
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. 

Sources en rapport avec celle ci

  • signaler à un administrateur
    Commentaire de jesusonline le 22/01/2007 20:21:34 administrateur CS

    Euh ??? C'est quoi l'utilité ? As ton avis s'ils ont supprimé l'attribut target tu ne penses qu'il y a une raison ?

    Je laisse la source car le code est "interessant" bien que complétement inutile ! Tu peux cependant utiliser links[i].className.contains(linkClass) ce qui permettra par exemple de mettre deux classes CSS sur le meme lien. (le mieux serait de faire un split(' ') sur className afin d'etre sur que l'élément contient bien la classe CSS ou alors il faut utiliser une expression réguliere)

  • signaler à un administrateur
    Commentaire de hvb le 24/01/2007 09:23:51

    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.

  • signaler à un administrateur
    Commentaire de jesusonline le 24/01/2007 10:55:29 administrateur CS

    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.

  • signaler à un administrateur
    Commentaire de hvb le 07/02/2007 11:01:57

    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.

  • signaler à un administrateur
    Commentaire de abdoulax le 07/05/2007 20:04:23

    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

  • signaler à un administrateur
    Commentaire de hvb le 29/06/2007 16:57:58

    "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 ^^

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS