11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai un gros soucis, j'ai des éléments html avec un attribut "onclick" qui marche très bien avec Firefox, mais pas du tout avec IE (6 et 7).

Pourquoi ? Quelles sont les alternatives ? s'il vous plait.

Mon exemple :
function coucou(){
alert('coucou !!!');
}


<a href="#" onclick="coucou();">test2</a>


Merci
Modifié par fodjio (12 Feb 2008 - 12:35)
Modérateur
Salut,

Cela fonctionne aussi sur IE6 et 7 mais tu dois annuler l'action normale du lien lorsque tu ajoutes ta fonction afin de ne pas changer de page...
<a href="#" onclick="coucou(); return false;">test2</a>
Merci beaucoup Koala,

mais malheureusement ça ne marche toujours pas Smiley sweatdrop

c'est la misère.

Une autre solution ?
Modifié par fodjio (12 Feb 2008 - 10:41)
Modérateur
Pour IE, essaies-tu en local ?

N'aurais-tu pas une petite bande jaune qui apparait en haut de ta fenêtre te prévenant qu'IE t'"aide" à protéger ton ordinateur ?

Si tel est le cas, tu n'as qu'à accepter l'éxécution du script et ça fonctionne...
Non je n'ai pas d'avertissement.

Par contre ça marche quand la fonction est définit dans la page.

Le problème vient donc du faite que la fonction est "importée" comme ça :

<script type="text/javascript" language="javascript" src="../javascript/mesfonctions.js"></script>

Modifié par fodjio (12 Feb 2008 - 10:48)
Modérateur
Le problème doit venir d'ailleurs car l'externalisation du script ne pose pas de problème à IE...

PS : L'attribut language="javascript" est obsolète... Tu peux l'enlever.
Smiley biggol Je rêve pas :

quand j'externalise => marche pas (sous IE seulement)
quand j'externalise pas => ça marche

(étrange)

Mon code html actuel :



<html>
<head>
<title>Test onclick</title>
<script type="text/javascript" src="../javascript/arborescence.js"></script>
</head>

<body>
<span onclick="alert('coucou');">test1</span><br />
<span onclick="javascript:coucou(); return false;">test1</span><br />
<a href="#" onclick="alert('coucou');">test2</a>
<a href="#" onclick="coucou(); return false;">test2</a>
</body>
</html>

Modifié par fodjio (12 Feb 2008 - 11:03)
Modérateur
<span onclick="alert('coucou');">test1</span>
déconseillé car l'alerte est inaccessible pour ceux qui naviguent au clavier... Pour bien faire, il faut lancer l'alerte à partir d'un élément focusable.

<span onclick="javascript:coucou(); return false;">test1</span>
idem

<a href="#" onclick="alert('coucou');">test2</a>
il manque le return false...

<a href="#" onclick="coucou(); return false;">test2</a>
fonctionne sur n'importe quel navigateur...

N'as-tu pas désactivé quelquechose dans IE et si non, es-tu certain du chemin indiqué dans l'attribut src de ta balise script ?
Oui, le chemin est correct car ça marche sous Firefox.

Et le javascript est activé car ça fonctionne lorsque la fonction est écrite dans la page même.


Par contre j'ai du nouveau :

ça marche quand j'isole la fonction dans mon fichier js. Smiley eek

exemple :
function getClassName(element){
	alert(element.className);
	alert(element.class);
}

function coucou(){
	alert('coucou !!!');
}

Marche pas.


function coucou(){
	alert('coucou !!!');
}

Là, ça marche
Modifié par fodjio (12 Feb 2008 - 11:12)
Oui, c'est bien ça.

Il faut éviter de mettre ce mot dans le script entier.

Merci Koala pour ton aide Smiley cligne