Является ли следующий действительный XHTML 1.0 Transitional? - PullRequest
2 голосов
/ 17 июня 2010

Служба проверки w3c жалуется, что следующий html недействителен.Это не нравится амперсанд (&) в моем JavaScript.Но в строках javascript разрешены амперсанды, не так ли?

<!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>Page Title</title>
    </head>
    <body>
        <script type="text/javascript">


           function search(query) {
             redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query;
             window.location.href = redir
             return false;
            }
        </script>

        <span>This is all valid HTML</span>

    </body>
</html>

Ответы [ 3 ]

3 голосов
/ 17 июня 2010

Все браузеры примут это, но чтобы сделать его действительным X (HT) ML, вам нужно поместить код Javascript в блок CDATA.

2 голосов
/ 17 июня 2010

Даже в javascript w3c валидатор не любит амперсанды.Попробуйте прокомментировать ваш JavaScript из валидатора

<!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>Page Title</title>
    </head>
    <body>
        <script type="text/javascript">
        //<![CDATA[//><!--
           function search(query) {
             redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query;
             window.location.href = redir
             return false;
            }
        //--><!]]>
        </script>

        <span>This is all valid HTML</span>

    </body>
</html>
1 голос
/ 17 июня 2010

Нет, это действительно недействительно. Если вы хотите использовать встроенный JavaScript в файле XHTML, вам нужно заключить JavaScript в CDATA . Если вы не хотите этого делать, то вы застряли с кодировкой &, <и>, что в JavaScript может быть довольно болезненным.

...