JavaScript无法在XHTML中运行

时间:2017-08-14 19:22:53

标签: javascript xhtml

我正在尝试使用JavaScript制作XHTML页面。 JavaScript不起作用。

我写了最简单的文件,但是找不到错误。对我来说似乎很好。拜托,给我一些建议。

    <!DOCTYPE html>
    <html   version="-//W3C//DTD XHTML 1.1//EN"
            xmlns="http://www.w3.org/1999/xhtml"
            xml:lang="en"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.w3.org/1999/xhtml
                                http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
    <head>
        <title>XHTML Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8" />
        <meta name="description" content="XHTML Test" />
        <meta name="keywords" content="XHTML, Test" />
        <link rel="stylesheet" type="text/css" href="a.css" />
        <script type="application/javascript" charset="utf-8" src="a.js" defer="defer"></script>
        <script type="application/javascript">
            function init()
            {
                alert('x');
            }
        </script>
    </head>
    <body onLoad="init();">
    <div id="main" class="c1">
        XHTML Test.
    </div>
    </body>
    </html>

我在<script>内尝试了外部JS文件和内联脚本。对我来说都不适用。

文档保存为index.xhtml并由Apache提供服务: Content-Type: "application/xhtml+xml"

如果我将文件重命名为index.html,则将其作为HTML提供,并且脚本可以正常运行。我需要它是XHTML。

谢谢。

2 个答案:

答案 0 :(得分:1)

XHTML具有区分大小写的标记和属性名称。它们都必须是小写的。

您已撰写onLoad而不是onload

答案 1 :(得分:-2)

在xhtml中你需要使用CDATA告诉浏览器你的脚本只是文字而不是xml

<script type="application/javascript">
//<![CDATA[
    function init()
    {
        alert('x');
    }
//]]>
</script>

编辑:

尝试:<body onload="init();">

基于:https://www.w3.org/TR/xhtml1/#h-4.11

4.11。具有预定义值集的属性

HTML 4和XHTML都有一些属性具有预定义和有限的值集(例如输入元素的type属性)。在SGML和XML中,这些称为枚举属性。在HTML 4下,这些值的解释不区分大小写,因此TEXT的值等同于text的值。在XML下,这些值的解释区分大小写,而XHTML 1中的所有这些值都以小写形式定义。