Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Проблемы с innerHTML в IE


Автор: Black 15.7.2005, 20:22
Почему это не работает в MSIE???

Код

<html>
<script type='text/javascript'>
var content;
</script>

<body onload='content=document.getElementById("content").innerHTML;'>

<div id='content'>

<b>Хочу получить этот HTML-код в переменную content. Работает в Mozilla, зато IE выделывается :-)</b>

</div>
</html>

Автор: Aliance 15.7.2005, 21:28
Для ИЕ частенько не хватает события onload. Обычно это фиксиЦЦа с помозью нулевой задержки.
А что ты далее делаешь с переменной?

Ага, все работает прекрасно IE 6.0 SP 2
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>© AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">

window.onload = function() {
   setTimeout(function() { alert(document.getElementById('qwe').innerHTML); }, 0);
}

</SCRIPT>
</HEAD>

<BODY>

<div id="qwe">ля-ля-ля</div> 

</BODY>
</HTML>

Автор: Black 15.7.2005, 21:57
Aliance
а у меня страница динамически перерисовывается. Решил сразу кусок HTML-кода, который будет перерисовываться кинуть в переменную, а потом из нее доставать. Т.е. таким образом я экономлю на размере страницы в Кб

Вообщем, нажимаю на одну кнопку один HTML в <div id='contenc'>, на другую другой HTML-код

Aliance, сейчас попробую что ты мне посоветовал smile

Автор: Sardar 15.7.2005, 22:45
Нет, проблема в том что переменная которой ты присваиваешь инфу называеться content, в то время как в документе присутствует элемент с ID="content". IE создаёт для слоя не изменяемый обьект и ругаеться как только ты хочешь ему присвоит что нибудь. Выход: перименуй либо переменную либо идентификатор в слое smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)