Дубликат идентификатора в noscript - PullRequest
7 голосов
/ 17 января 2012

Является ли следующий HTML / Javascript действительным (строгим), когда Javascript включен? Идентификатор в теге noscipt игнорируется?

<body>
    <noscript>
        <div id="test"></div>
    </noscript>
    <script type="text/Javascript">
        var el = document.createElement('span');
        el.id = 'test';
        document.body.appendChild(el);
    </script>
</body>

1 Ответ

10 голосов
/ 17 января 2012

Когда включен JavaScript, содержимое <noscript> имеет значение необработанный текст , а не содержимое элемента, поэтому дочерний элемент <noscript> является текстовым узлом со значением "\n <div id="test"></div>\n" вместо DIVэлемент.getElementById("test") не найдет <div> с идентификатором "test", потому что такого элемента нет, только текстовый узел, содержимое которого будет анализироваться в DIV, если он появился вне контекста необработанного текста.http://www.w3.org/TR/html5/scripting-1.html#the-noscript-element

Вне элементов head, если для элемента noscript включен сценарий
Элемент noscript должен содержать только текст ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...