Il semble que le xhtml 1.0 strict ne reconnaisse pas l'attribut target dans <a href="" target="blank"> par exemple, alors que ça marche en xhtml 1.0 transitionnel (en fait ça marche mais le validateur w3c indique une erreur).
Comment doit on faire pour ouvrir une page web dans une autre fenêtre?
Modifié par zippog (23 Dec 2005 - 16:27)
Bonjour,
On ne le fait pas, tout simplement.

Non bon la réponse est plus complexe que ça en fait : normalement, il ne faudrait pas le faire, car ouvrir une nouvelle fenêtre dérange la navigation classique et peut surprendre l'utilisateur.
Mais si tu tiens à utiliser des pop-up, tu as une alternative javascript :
<a href="page.html" onclick="return !window.open(this.href);">...</a>
C'est la seule solution valide à ma connaissance, mais il vaut mieux ne pas le faire pour des raisons d'accésibilités Smiley cligne
Bonjour,

Beaucoup plus simple et plus conforme : utiliser target="blank" et la DTD XHTML1.0 transitional qui a été conçue exactement pour cela.

<edit>Grosse sottise : Quentin n'a pas donné le mauvais javascript, en fait. C'est moi qui n'étais pas bien réveillé Smiley ohwell </>
Accessoirement, QuentinC tient décidément beaucoup à son javascript mal fait et ne veut toujours pas lire l'article d'OpenWeb sur le "return false" à utiliser dans ce cas... Smiley cligne
Modifié par Laurent Denis (22 Dec 2005 - 06:34)
Laurent > Mais bien sûr qu'il y a un return... et l'article d'openweb, je l'avais lu... il y a un certain temps certes, mais je l'avais lu...
Je ne vois franchement pas ce qu'il y a de si mal dans ce script, celui d'openweb n'est déjà pas si différent que ça. window.open(this.href); return false; au lieu de return !window.open(this.href); c'est une sorte de compactage...
Je vais expliquer le fonctionnement pour enlever les doutes : si javascript est désactivé, l'onclick n'a pas lieu et le lien normal est ouvert. Si javascript est activé, le onclick est exécuté. Si la popup est crée correctement, donc qu'aucun plugin antipopup ne l'a bloquée, la fonction window.open retourne normalement un objet représentant la fenêtre. Comme cet objet vaut autre chose que 0, false, chaîne vide ou null, on supposera qu'il vaut true. Grâce au point d'exclamation, on renvoie l'inverse, c'est-à-dire false. Si, pour une des raisons indiquées ci-dessus, la popup n'a pas été crée, window.open ne renverra rien, false, ou null, et avec le point d'exclamation on renvoie true, ce qui a pour conséquence d'ouvrir le lien dans la fenêtre courante, comportement normal si javascript avait été désactivé.
En principe, ça marche avec firefox et IE, dans tous les cas.

Si tu trouves toujours mon javascript mauvais, j'aimerais avoir un peu plus d'explications sur pourquoi est-il mauvais ? Un contre-exemple serait le bienvenu.
Modifié par QuentinC (22 Dec 2005 - 05:46)
Toutes mes excuses, Quentin : c'était mon tour de ne pas être bien réveillé ce matin. Je n'avais pas bien lu ton exemple de code Smiley cligne
Modifié par Laurent Denis (22 Dec 2005 - 06:36)
Ça arrive à tout le monde... tu es tout excusé, l'autre jour c'était moi... on voit que c'est la fin de l'année Smiley lol .
Administrateur
zippog a écrit :
Il semble que le xhtml 1.0 strict ne reconnaisse pas l'attribut target dans <a href="" target="blank"> par exemple, alors que ça marche en xhtml 1.0 transitionnel (en fait ça marche mais le validateur w3c indique une erreur).
Comment doit on faire pour ouvrir une page web dans une autre fenêtre?

Certains écrivent des FAQ, d'autres se ruent sur le forum sans chercher si la question a déjà été résolue.
Le monde est fou.
http://forum.alsacreations.com/faq/#item21