innerHTML удаляет закрывающую косую черту из тега изображения - PullRequest
3 голосов
/ 22 ноября 2010

Это очень странно. Вот функция быстрого теста:

function test_function(){
    code = '<img src="http://www.myimage.com/img.jpg" alt="image" />';
    alert(code);
    document.getElementById('test').innerHTML = code;
    alert(document.getElementById('test').innerHTML);
}

Запуск кода выше покажет /> в первом предупреждении, но второе предупреждение не показывает, он показывает только >. Таким образом, похоже, что применение к .innerHTML удаляет косую черту. Есть идеи, как это предотвратить? Мне нужен слеш для проверки.

1 Ответ

6 голосов
/ 22 ноября 2010

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

На самом деле, большинство браузеров обрабатывают XHTML внутренне точно так жекак HTML, а не как XML-представление вашего документа.Только когда вы отправляете документ XHTML с MIME-типами application/xhtml+xml, , некоторые браузеры будут отображать вашу страницу с использованием синтаксического анализатора XML.

Также см. Статью Иана Хиксона .

...