2010-06-21 6 views
0

У меня есть страница, которая требует ввода пользователя, тогда она будет выполнять некоторые поля javascript и заполнять на странице. Часть этого включает вызов скрипта perl, который будет запускаться, и получать данные от другой проверки страницы, что против ввода от пользователя. Количество элементов, возвращаемых скриптом perl, может быть от нуля до десяти или даже больше. Чтобы справиться с этим, я написал несколько javascript, чтобы добавить каждый элемент в список на моей странице html.Internet explorer и динамические списки из javascript

Проблема, с которой я сталкиваюсь, заключается в том, что она работает отлично в Safari и Chrome, но, похоже, не работает в Internet Explorer 6 или 7. Основная проблема здесь в том, что большинство людей, которые будут использовать это будет в Internet Explorer. У меня нет ошибок в коде javascript.

<div id='testDiv'><ul></ul></div>

тогда я просто мой Javascript заменить экземпляр от </ul> в DIV с

<li>blah blah blah</li></ul>

и есть, что повторение за каждый раз, когда элемент должен быть добавлен в список. Все остальное на странице отлично работает, и есть даже новая строка, где будут отображаться новые элементы списка. Однако там нет текста.

Есть ли что-то, что я делаю неправильно, или интернет-исследователь не делает это правильно?


EDIT: добавлена ​​запрашиваемая информация.

var dateList = document.getElementById('testDiv').innerHTML; 
var insertToList = "<li><div>blah blah blah</div></li></ul>"; 
dateList = dateList.replace('</ul>', insertToList); 
document.getElementById('testDiv').innerHTML = dateList; 

У меня есть это в цикле, чтобы просмотреть результаты и при необходимости добавить результаты в список. К сожалению, я не могу связать вам страницу, так как это внутренний проект.

+0

Не могли бы вы ссылаться на веб-страницу? Или, по крайней мере, разместить Javascript, который выполняет замену? –

+0

См. Выше, добавлен код javascript. – sam

ответ

0

В зависимости от того, что вы используете для вашего механизма выбора, IE отличается. Я рекомендую использовать jQuery для выбора и замены содержимого, поскольку он обрабатывает различия браузера для вас.

0

В IE6 testDiv.innerHTML является <UL></UL>. Обратите внимание на теги верхнего регистра.

dateList.replace('</ul>', ...) не может найти что-либо похожее, чтобы не выполнять замену.

Лучшим подходом было бы получить ссылку на элемент списка (ul) и добавить туда HTML.

var ulRef = document.getElementById('testDiv').getElementsByTagName("ul")[0]; 
ulRef.innerHTML += "<li><div>blah blah blah</div></li>";