XHTML Strict недопустим из-за HTML-тегов внутри Javascript - PullRequest
3 голосов
/ 26 января 2011

Я создаю сайт с использованием строгой разметки XHTML.Внутри html мне нужно поместить js-скрипт:

<script type="text/javascript">

$(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>');

</script>   

К сожалению, xhtml больше не действителен из-за тега "" внутри этого скрипта.Как я могу проверить xhtml, не удаляя его?

Ответы [ 6 ]

6 голосов
/ 26 января 2011

Требуется тег CDATA. Пример, украденный со страницы MDC:

<script type="text/javascript">
 //<![CDATA[
  var i = 0;

  while  (++i < 10)
  {
    // ...
  }
 //]]>
</script>

В общем, лучше избегать этой проблемы, если ваш JS (и CSS) находится во внешних файлах.

3 голосов
/ 26 января 2011

Попробуйте:

<script type="text/javascript">
  <![CDATA[
      $(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>');
  ]]>
</script>
1 голос
/ 26 января 2011

Какую ошибку выдает валидатор? Выложенный код выглядит довольно корректно.

Btw. Если вам не нужен XHTML по какой-то очень конкретной причине,

(http://xhtml.com/en/xhtml/serving-xhtml-as-xml/)

вам, вероятно, лучше всего с HTML4 или HTML5, с помощью которого вы также можете сделать правильный код.

1 голос
/ 26 января 2011
<script type="text/javascript"><![CDATA[
// your code
]]></script>

Нужно исправить вашу проблему

1 голос
/ 26 января 2011

Обновление

В вашем коде есть проблема, заключающаяся в том, что в нем отсутствуют закрывающая скобка и скобки.Возможно опечатка?

Что касается проверки XHTML, лучшим вариантом будет поместить ваш JavaScript в отдельный файл.В противном случае добавьте раздел CDATA вокруг вашего скрипта:

<script type="text/javascript">
//<![CDATA[
    $(document).ready(function () { $('#nav li#nav-strona-glowna').append('<a href="/platinium/" class="hover active"><span>Strona glowna</span></a>'); });
//]]>
</script>

Обратите внимание, что комментарии JavaScript существуют для браузеров, таких как IE, которые не анализируют XHTML как XML.Смотри https://developer.mozilla.org/en/properly_using_css_and_javascript_in_xhtml_documents

1 голос
/ 26 января 2011

Оболочка CDATA

 <script>
 //<![CDATA[

 // js goes here - bypasses browser HTML parser

 //]]>
 </script>

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

Но в тех случаях, когда это невозможно, оболочка CDATA не позволит браузеру анализировать ваш JavaScript как HTML.

Имейте в виду, что есть причина, по которой они называют это HTML Strict.

...