SIMULER UN TARGET="_BLANK" VALIDE XHTML STRICT

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 - 18 mai 2008 à 06:15
molokoloco Messages postés 4 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 21 décembre 2009 - 31 oct. 2008 à 11:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46689-simuler-un-target-blank-valide-xhtml-strict

molokoloco Messages postés 4 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 21 décembre 2009
31 oct. 2008 à 11:33
En gros, avec prototype linké.. cela donne

$$('a.popupblank').each(function(e) {
var href = e.getAttribute('href');
e.onclick = function () { window.open(href); return false; };
});

Yep ;)
lvdesign Messages postés 1 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 31 octobre 2008
31 oct. 2008 à 11:25
Bonjour,
Tout cela est fort intéressant Mais je vais vous proposer une autre solution plus propre, rapide et évolutive.
Avec seulement un nom de classe, par exemple "popupblank" dans le Body, exemple:

tester le script [LaPageOuLaRéferenceAAtteindre À consulter]

et voilà le tour est joué car dans le Head, un script externe exécute la réference à la class="popupblank".

Bon voici le code du .js:
//function chargement de l'action
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
oldonload();
func();
}
}
}
//lecture de class concernée dans la page Html
function prepareLinksBlank() {
if (! document.getElementsByTagName ) return false;
var links = document.getElementsByTagName("a");//lecture des a
for (var i = 0; i < links.length; i++) {
if (links[i].className == "popupblank") { //si "popupblank" alors
links[i].onclick = function () {
popUpBlank(this .getAttribute("href"));
return false;
}
}
}
}
//action de la class popupblank, parametrage à vos souhaits.
function popUpBlank(winURL) {
window.open(winURL, "popupblank", "toolbar=0,location=0,directories=0,scrollbars=1, target=_blank");
}

//pour plus de détails www.lvdesign.com.fr - rubrique:Tips
molokoloco Messages postés 4 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 21 décembre 2009
2 juil. 2008 à 20:42
J'aimais bien l'attribut target...
mais sinon..

;)
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
20 mai 2008 à 17:11
Pour rajouter au propos de HVB, il est toujours mieux de séparer le javascript/css du code HTML en général. Moindrement que l'on travaille avec des projets assez gros, c'est va beaucoup mieux pour coder s'il l'on sépare le tout.
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
20 mai 2008 à 09:53
moui... le principe est exactement le même, sauf que dans l'autre source, les événements sont définis de manière dynamique, ce qui est quand même plus pratique...
medium69 Messages postés 2 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 19 mai 2008
19 mai 2008 à 20:32
J'ai vu... mais là je le propose en une ligne de code à mettre uniquement dans les liens à ouvrir dans une nouvelle fenêtre.

De plus, dans mon cas, cela marche que le lien soit activé à la souris, ou au clavier (accessibilité oblige ;) )
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
19 mai 2008 à 09:45
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
18 mai 2008 à 06:15
En cherchant un peu sur le sujet, je suis tomber sur ceci. C'est un article assez complet qui traite du sujet de l'attribut target avec le HTML/XHTML Strict :

http://www.cybercodeur.net/weblog/commentaires/detailsCarnet.php?idmessage=1088
Rejoignez-nous