2012-03-27 2 views
0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
<html> 
<head> 
<script type="text/javascript"> 
function selectSomething(){ 
    var obj = document.all.select1; 
    var selectValue = obj.options[obj.selectedIndex].value; 

    if(selectValue == "1"){ 
     document.getElementById("text").innerHTML ="one"; 
    } 
    if(selectValue == "2"){ 
     document.getElementById("text").innerHTML ="two"; 
    } 
} 
</script> 
</head> 
<body onload="selectSomething()"> 

<select id="select1" onchange="selectSomething()"> 
<option value="1">One</option> 
<option value="2">Two</option> 
</select> 

<div id="text"></div> 

</body> 
</html> 

Этот код работает в Chrome 17.0.963.83, IE 8.0.6001.18702, но не работает в Firefox 11.0. Внутренний индекс никогда не отображается в Firefox, если я не удалю DOCTYPE, который я не могу сделать, потому что эта веб-страница будет частью более крупного проекта. Это ошибка Firefox? Как это сделать в Firefox?innerhtml светлячок не работает с док типа

+0

Почему у вас есть доктрины FRAMESET ?! – Quentin

ответ

3

Взгляните на консоль ошибок Firefox (очень полезную для веб-разработчиков). В Firefox document.all не определен.

Вместо этого вы должны использовать document.getElementById("select1").

+0

Просто загрузил его и увидел, что «document.all undefined var obj = document.all.select1;» ошибка. Сделал переключатель, как вы сказали, и это сработало. Спасибо! – b10hazard

+0

@ bitnuk3r: Рад это услышать. Я считаю, что лучше всего начать разработку в Firefox (более стандартно, чем IE), а затем выполнить любые настройки, необходимые для работы в других браузерах. Очень полезным дополнением Firefox для веб-разработчиков является [Firebug] (http://getfirebug.com/). – Travesty3

+0

Да, я должен был проверить это, прежде чем отправляться. Думаю, когда я вижу ошибку, мой инстинкт кишки - это «StackO it», так как сообщество здесь настолько велико, и решения выкладываются так быстро. Еще раз спасибо. Хороший аватар, кстати, Кальвин и Гоббс - отличная комикс! – b10hazard

2

Firefox не поддерживает document.all так вместо

var obj = document.all.select1; 

использование

var obj = document.getElementById("select1"); 

(Ваш также отсутствует знак XMLNS)

1

эта работа

var obj = document.getElementById("select1"); 
1

Tr y с использованием document.getElementById вместо document.all. all устарел, поэтому я предполагаю, что он умирает, когда вы используете XHTML как ваш doctype.

+0

Чтобы быть устаревшим, он должен был стать стандартным для начала. Это всего лишь IE4ism. – Quentin

+0

@Quentin Нет, он просто должен быть устаревшим; он не должен быть стандартным первым. Использование 'document.all' не рекомендуется даже при написании страниц для IE, поэтому оно устарело. Также обратите внимание, что OP утверждает, что этот код работает на FF без doctype (режим quirks). –

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