Bonjour à tous !

Je poursuis la mise à jour de mon code pour le rendre accessible et respectueux du visiteur...

J'ai utilisé le tutoriel "Ouvrir des liens externes dans une nouvelle fenêtre" un peu modifié pour divers besoins (ouverture dans une popup dimensionnée).


function ouvrir(page,fenetre,largeur,hauteur,options)
{
var top=(screen.height-hauteur)/2;
var left=(screen.width-largeur)/2;
ff=window.open(page,fenetre,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
ff.focus();
fenetre.title='nawak';
}

function open_ext_link()
{
	var liens = document.getElementsByTagName('a');
	// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
	// Une boucle qui parcourt le tableau (array) liens du début à la fin.

	for (var i = 0 ; i < liens.length ; ++i)  {
		// Si les liens ont un nom de class égal à lien_ext, alors on agit.
		if ( (liens[i].className == 'lien_ext') || (liens[i].className == 'lien_ext_img') )  {
			liens[i].title = liens[i].title + ' (S\'ouvre dans une nouvelle fenêtre)';
			if (liens[i].target == '_blank') {
					// Au clic de la souris.
					// inutile de prévoir un onkeypress voir :  http://www.accessiweb.org/fr/uwem/notes.html#note_36
 
					liens[i].onclick = function() {
					window.open(this.href,this.target) //,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=no,directories=no,location=no");
					return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
				};
			}
			else
			{
				liens[i].h = 600;
				liens[i].l = 800;
				liens[i].top = Math.round((screen.availHeight-liens[i].h)/2);
				liens[i].left = Math.round((screen.availWidth-liens[i].l)/2);
				liens[i].onclick = function()  {
				window.open(this.href,this.target,"top="+this.top+",left="+this.left+",width="+this.l+",height="+this.h+",menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=no,directories=no,location=no");
				return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
				};
			}
		}
	}
}
window.onload = open_ext_link;

[/i]

Je n'ai pas utilisé la pseudo-classe :after, car elle est peu soutenue par les navigateurs actuels, mais utilisé une image de background comme indiqué par exemple sur http://www.maxdesign.com.au/presentation/external/.

Tout fonctionne parfaitement sur IE7, IE6, IE5x (même si le CSS n'est pas encore adapté ...), Firefox sur Windows, Firefox sur OSX, Opera...

Par contre Le javascript ne semble pas fonctionner sous Camino, ni sous Safari 1.3.2 : il n'y a pas d'ajout de la mention
a écrit :
(S'ouvre dans une nouvelle fenêtre)
(idem d'ailleurs sous IEMac5.2.3)

Ceux qui se sont inspirés du tutoriel ont-ils constatés ce problème ? ou est-ce moi qui ait commis une (des) erreurs ?

Certes Safari et Camino ne représente pas une part de marché importante, mais je suis curieux de nature Smiley langue ... et puis Safari reste le navigateur des utilisateurs de Mac...

Merci à tous !

Mos [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modifié par Mos (14 Mar 2007 - 22:49)