document.write XHTML 1.0 Ошибка проверки перехода

Мне нужно отобразить простое использование функций подтверждения() и приглашения() с использованием XHTML 1.0 Transitional как часть моей задачи назначения. весь код должен быть проверен.

Когда я пытаюсь проверить код, я получаю следующую ошибку:

Строка 12, столбец 24: тип документа не допускает здесь элемент "p".

<!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>java script demonstration</title>
    </head>
    <body>
        <script type="text/javascript">
                    var response=confirm("This box was created using Javascript - Click on OK to continue")
            if (response)
                {document.write("<p>You have just clicked on OK</p>")}
            else 
                {document.write("You have just clicked on Cancel")}     
                    var reply=prompt("Please enter your Name")
            document.write("your name is " + reply +"")
        </script>   
    </body>
</html>

Можно ли включить элемент p в код, продолжая проходить проверку?


person xianate    schedule 06.12.2014    source источник
comment
document.write не должен работать даже в документе XHTML: developer.mozilla. org/en-US/docs/Web/API/document.write   -  person Felix Kling    schedule 06.12.2014
comment
Будет ли он работать в XHTML 1.0 Transitional? Извините, я должен был быть более конкретным.   -  person xianate    schedule 06.12.2014


Ответы (1)


Поскольку вы используете XHTML, вам нужно обернуть свой JavaScript в CDATA:

<!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>java script demonstration</title>
    </head>
    <body>
        <script type="text/javascript">
            //<![CDATA[
            var response=confirm("This box was created using Javascript - Click on OK to continue")
            if (response)
                {document.write("<p>You have just clicked on OK</p>")}
            else 
                {document.write("You have just clicked on Cancel")}     
                    var reply=prompt("Please enter your Name")
            document.write("your name is " + reply +"")
            //]]>
        </script>   
    </body>
</html>

Это просто способ сообщить компилятору, что в тегах CDATA содержатся данные, а не разметка. Это необходимо, если вы планируете использовать какой-либо встроенный JS.

person Sean Johnson    schedule 06.12.2014