2010-11-05 4 views
2

Можно создать дубликат:
'innerText' works in IE, but not in FirefoxJavascript не работает на Firefox

Почему следующие работы скрипта на IE и Safari, но не в 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

Что не работает точно. – Gabe

+0

Что? Попробуйте выполнить перетасовку с некоторым форматированием. Маленький блок двоичного кода поможет вам с форматированием кода, пожалуйста, используйте его. –

+0

Что не работает? –

ответ

7

Свойство innerText не работает на Firefox, это свойство IE-специфические (хотя IIRC поддерживается Opera/Chrome).

Firefox использует стандарт W3C Node::textContent.

+0

Также появляется «evt» из ниоткуда. –

+0

@josh, справа, ему нужно передать объект 'event' из атрибута * intrinsic * onclick' в его функцию' ShowHide'. – CMS

3
  1. Я не вижу, где «ЭВТ» приходит, но объекты события упоминаются по-разному в Firefox и IE
  2. Firefox не имеет атрибут «InnerText» для манипуляций

(Это «evt» заставляет меня задаться вопросом, как это работает даже в IE.)

1

CMS является правильным, но также неполным.

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

Эта линия терпит неудачу, потому что «ЭВТ не определен»

1

evt is undefined

Если вы не переходящая в объекте события из обработчика OnClick где-то не включен в сниппет Firefox не имеет ни малейшего представления, что evt есть. Если вы хотите найти цель таким образом, передайте ее как параметр функции.

Смежные вопросы