Ceci est une suite pour ceux qui ont suivi de mon parcour d'objet.
Racpitulon :
J'ai plusieurs images sur une page web imbriqué dans des liens.
En javascript, j'assigne un evenement 'click' a ces liens pour ouvrir une popup
l'attribut href du lien pointe sur le lien de la page (au cas ou javascript n'est pas activé)
Voici donc la fonction appelé lorsque l'on clique sur un de ces liens :
Le probleme est que IE 6 n'arrete pas la propagation et que le click sur le lien ouvre la page sur laquel il pointe (et n'effectue pas le window.open)
Bref, comme si IE ne lisait pas le JS, alors que ca roule sous firefox
quelqu'un sait comment faire ?
Modifié par nORKy (18 Aug 2006 - 09:52)
Racpitulon :
J'ai plusieurs images sur une page web imbriqué dans des liens.
En javascript, j'assigne un evenement 'click' a ces liens pour ouvrir une popup
l'attribut href du lien pointe sur le lien de la page (au cas ou javascript n'est pas activé)
Voici donc la fonction appelé lorsque l'on clique sur un de ces liens :
function open_popup(e)
{
e = getStandardEvent(e);
e.cancelBubble = true; // IE
e.preventDefault();
e.stopPropagation();
window.open(this.getAttribute('href'), '_blank');
return (false);
}
function getStandardEvent(e)
{
// abstraction pour recuperer un objet standard pour l'evenement en cours
// comprend le modele DOM standard et le modele proprietaire de MSIE
// e : parametre recu lors de l'appel du gestionnaire d'evenement
// retour : objet d'evenement standard
if (e == null && window.event) {
// cas particulier de MSIE pour recuperer l'evenement en cours
e = window.event ;
}
if (e.target == null && e.srcElement) {
// cas particulier de MSIE pour recuperer la balise DOM cible
e.target = e.srcElement ;
}
if (! e.preventDefault ){
// cas particulier de MSIE pour empecher l'action par defaut du navigateur
e.preventDefault = function () { this.returnValue = false ; } ;
}
return e ;
}
Le probleme est que IE 6 n'arrete pas la propagation et que le click sur le lien ouvre la page sur laquel il pointe (et n'effectue pas le window.open)
Bref, comme si IE ne lisait pas le JS, alors que ca roule sous firefox
quelqu'un sait comment faire ?
Modifié par nORKy (18 Aug 2006 - 09:52)