2010-11-05 7 views
2

Possible en double:
'innerText' works in IE, but not in FirefoxJavascript ne fonctionne pas sur firefox

Pourquoi le travail de script suivant sur IE et Safari, mais pas dans Firefox?

<html> 

<head><script type="text/javascript"> 

function ShowHide(strTag ,strAttribute){ 

var elem = document.getElementsByTagName(strTag); 
var elem1 = evt.srcElement || evt.target; 

for (var i=0;i<elem1.children.length;i++){ 
    elem1.children[i].innerText=="4" ? elem1.children 

[i].innerText="6":elem1.children[i].innerText="4"; 
} 
    for (var i =0;i<elem.length;i++) { 
     if(elem[i].getAttribute(strAttribute)=="yes") { 
     elem[i].style.display=='none'? elem[i].style.display='block':elem 

[i].style.display='none'; 
     } 
    } 
} 

</script> 


<div id=div1 onclick="ShowHide('div','exp2');"> 
<font face=Webdings color=BLACK>4</font> click here for some expandable 

divs...</div> 
<div id=div2 exp2='yes' style="display:none;">I'm a div!</div> 
<div id=div3 exp2='yes' style="display:none;">More of them divs...</div> 
<div id=div4 exp2='yes' style="display:none;">Me too! divs...</div> 

</body> 
</html> 
+0

Ce qui ne fonctionne pas exactement. – Gabe

+0

Quoi? Essayez de repasser avec un peu de formatage. Le petit bloc de binaire est là pour vous aider avec le formatage de code, s'il vous plaît utilisez-le. –

+0

Qu'est-ce qui ne fonctionne pas? –

Répondre

7

La propriété innerText ne fonctionne pas sur Firefox, cette propriété est IE spécifique (bien que IIRC est prise en charge par Opera/Chrome). Firefox utilise la propriété standard Node::textContent du W3C.

+0

Également 'evt' apparaît de nulle part. –

+0

@josh, à droite, il doit passer l'objet 'event' de l'attribut * intrinsic *' onclick' à sa fonction 'ShowHide'. – CMS

3
  1. Je ne vois pas où "EVT" vient, mais les objets d'événement sont différemment mentionnés dans Firefox et IE
  2. Firefox ne dispose pas d'un "innerText" attribut pour la manipulation

(Ce "evt" chose me fait me demander comment cela fonctionne même dans IE.)

1

CMS a raison mais aussi incomplète.

var elem1 = evt.srcElement || evt.target; 

Cette ligne échoue parce que « EVT est pas défini »

1

evt is undefined

À moins que vous passez dans l'objet de l'événement du gestionnaire onclick quelque part non inclus dans votre extrait de Firefox n'a aucune idée evt est. Si vous souhaitez trouver la cible de cette manière, transmettez-la en tant que paramètre à la fonction.

Questions connexes