0

作为我的分配任务的一部分,我需要使用 XHTML 1.0 Transitional 显示对 confirm() 和 prompt() 函数的简单使用。所有代码都需要验证。

当我尝试验证代码时,我收到以下错误:

第 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 元素合并到代码中?

4

1 回答 1

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,这是必要的。

于 2014-12-06T20:37:03.040 回答