IE9 устанавливает innerHTML текстовой области с тегами html

у меня есть это поле

В IE9 следующая строка выдает ошибку «SCRIPT601: Неизвестная ошибка времени выполнения» // вариант 1. document.getElementById('code').innerHTML = 'some text';

Ошибка исчезает, и кажется, что она работает (назначая пустое значение), когда я меняю строку на: //option 2. document.getElementById('code').innerHTML = '';

Я пробовал это: //вариант 3. document.getElementById('code').innerHTML = escape('some text');

но тогда HTML будет экранирован, и это не то, что я хочу, я хочу, чтобы эта точная строка была помещена в текстовое поле.

В Chrome и Firefox код в варианте 1 работает правильно.

Что я могу сделать, чтобы исправить это?


person Peter    schedule 31.03.2011    source источник


Ответы (3)


Вы должны установить свойство value.

person SLaks    schedule 31.03.2011
comment
Ух ты! +1 за решение. потратил час, чтобы выяснить проблему, поскольку она работала в Firefox и Chrome. IE просто выдавал неизвестную ошибку времени выполнения :( - person Damodar Bashyal; 22.05.2013

Как вы думаете, есть ли на вашей веб-странице <!DOCTYPE html> или что-то подобное?

http://blogs.msdn.com/b/ie/archive/2011/03/24/ie9-s-document-modes-and-javascript.aspx

person Adam Casey    schedule 31.03.2011

В режиме причуд IE9 принятое решение не будет работать.

Поскольку вы, вероятно, пытаетесь установить innerHtml вместо <p>, это сработает, если вы замените <p> на <div>.

Авторы: Тео Грей, http://www.theogray.com/blog/2009/06/internet-explorer-unknown-runtime-error

person tomash    schedule 07.09.2011