我正在尝试使用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。
谢谢。
答案 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中的所有这些值都以小写形式定义。