Ошибки noscript, W3C XHTML

Я пытаюсь проверить свой документ как XHTML 1.0 Transitional (W3C).

У меня следующая ошибка: «тип документа не допускает здесь элемент« noscript »; при условии отсутствия начального тега« объекта », который соответствует этому коду:

<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
</head>

Но я получаю ошибку при проверке. В чем проблема? Пожалуйста, помогите мне решить эту проблему.


person Igor    schedule 30.01.2015    source источник
comment
Определение XHTML не включает noscript. Ваш выбор - игнорировать ошибку W3C, использовать другой тип документа или использовать другой способ обнаружения javascript.   -  person Mr Lister    schedule 30.01.2015


Ответы (1)


Одним из ваших решений может быть размещение его в body вместо head вашего документа следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title</title>
<meta name="viewport" content="width=device-width"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
</body>
</html>

Это приводит к:

This document was successfully checked as XHTML 1.0 Transitional!

Кроме того, согласно этому ответу, похоже, что на самом деле это не имеет значения (я говорю о head vs body здесь):

Сделали переезд с разделом Google Ad за пределами HEAD и только в самой части BODY. На самом деле это не имеет значения, поскольку, когда он был перемещен, он был сразу после параметров, используемых для отображения рекламы.

Решение №2. Если вам нужно вообще избавиться от <noscript>, вы можете попробовать сделать следующее:

<div id='noscript' style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
<script>document.getElementById('noscript').style.display='none'</script>

Благодаря этому все работает точно так же, как и в первом решении. Если JavaScript отключен, <script>...</script> не будет выполняться, поэтому будет отображаться <div>...</div>.

person Dmytro Dzyubak    schedule 31.01.2015