IE HTML Escape - PullRequest
       21

IE HTML Escape

1 голос
/ 03 августа 2009

У меня маленькая проблема, которая сводит меня с ума. У меня есть следующий пример кода:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <script>
        function Test() {
            document.getElementById("test").innerHTML = "<input type='text' value='ab&apos;cef'>"
        }
    </script>
    <body>
        <div id="test"></div>
    </body>
    <script>
        Test();
    </script>
</html>

Этот пример прекрасно работает в FireFox 3.5, и я вижу апостроф в середине текста в поле ввода. Однако IE 7 дословно отображает его как: ap 'cef.

Я по-разному пробовал разные способы побега в тщетной надежде увидеть апостроф, например, \ x27 или \ ', но безуспешно. Кто-нибудь умный человек знает, как это сделать в IE?

Я понимаю, что мог бы использовать методы DOM для создания узлов, но слишком много кода для меня, чтобы все это реорганизовать.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 августа 2009

& APOS; это функция XML Это не разрешено в HTML 4.x и не поддерживается Internet Explorer. Firefox поддерживает его как часть парсера тегов, чтобы справиться с XHTML, который используется как text / html.

Используйте ' вместо.

См. Также XHTML 1.0 Приложение C .

0 голосов
/ 03 августа 2009

document.getElementById ("test"). InnerHTML = ""

...