`
Supanccy2013
  • 浏览: 223295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XHTML中使用JavaScript注意的问题

阅读更多
JavaScript代码:
	<script type="text/javascript">
	    function compare(a,b)
	    {
	    	if(a < b)
    		{
	    		if (a < b)
	    	    {
	    			alert('A is less than B');
	    	    }
	    		else if(a > b)
	    		{
	    			alert('A is greater than B');
	    		}
	    		else
	    		{
	    			alert('A is equal to b');
	    		}
    		}
	    }
	</script>

上述代码在HTML中可以正常使用,但XHTML中使用中会出现下面的错误:
javax.servlet.ServletException: Error Parsing /page/converter/Person.xhtml: Error Traced[line: 12] The content of elements must consist of well-formed character data or markup.

因为在HTML中有特殊规则用以确定<script>中那些内容是可以被解析的,但是在STHML
中不适用。这里的比较语句 a < b中的小于号< 在XHTMLA中会被当做新的标签的开始。但作为标签来讲,小于号后面不能跟空格。因此会导致语法错误。

解决办法一:
用HTML实体(HTML实体参见“HTML实体的博文”)来大体小于号,下面经过处理小于号的代码可以在HTML中正常使用
	    function compare(a,b)
	    {
	    		if (a &lt;= b)
	    	    {
	    			alert('A is less than B');
	    	    }
	    		else if(a &gt;= b)
	    		{
	    			alert('A is greater than B');
	    		}
	    		else
	    		{
	    			alert('A is equal to b');
	    		}
	    }

这样虽然可以解决问题,但是导致代码不好理解了,我们可以使用下面的第二种解决方案

解决办法二:
<script type="text/javascript">
	<![CDATA[
	    function compare(a,b)
	    {
	    		if (a < b)
	    	    {
	    			alert('A is less than B');
	    	    }
	    		else if(a > b)
	    		{
	    			alert('A is greater than B');
	    		}
	    		else
	    		{
	    			alert('A is equal to b');
	    		}
	    }
	   ]]>
	</script>

在兼容XHTML的浏览器中,这个方法可以解决问题。但实际上还有不少浏览器不兼容XHTML
因而不支持CDATA 片段,再使用JavaScript的注释将CDATA注释掉就可以了,如下面的:
	//<![CDATA[
	    function compare(a,b)
	    {
	    		if (a < b)
	    	    {
	    			alert('A is less than B');
	    	    }
	    		else if(a > b)
	    		{
	    			alert('A is greater than B');
	    		}
	    		else
	    		{
	    			alert('A is equal to b');
	    		}
	    }
	   //]]>
	


分享到:
评论

相关推荐

    html与xhtml中javascript区分_.docx

    尽管提供的文档内容与题目不完全匹配,涉及C++中的单例模式实现问题,但本文仍会专注于HTML与XHTML中JavaScript使用的区别。 ### HTML与XHTML中JavaScript的区别 #### 1. 文档类型定义(DTD) HTML与XHTML在文档...

    HTML、XHTML、CSS与JavaScript经典结合

    一般有两种引入CSS的方式,一种是内联样式,即直接在HTML元素中使用style属性;另一种是使用标签在网页的头部或外部文件中定义样式。而JavaScript一般通过标签来引入,既可以内联也可以链接外部文件。在引入这些语言...

    如何正确地在XHTML文档中使用JavaScript和CSS

    3. 在XHTML中使用JavaScript和CSS时,需要特别注意那些在JavaScript和CSS中可能含有特殊意义的字符,如引号、小于号等。这些字符在HTML中可以直接使用,但在XHTML中需要使用字符实体或者放在CDATA区段中。 在XHTML...

    精通XHTML程序设计高级教程

    当我们在XHTML文档中使用JavaScript时,需要注意以下几点: 1. JavaScript代码应该放在XHTML文档的或部分。如果代码是在部分,我们通常将脚本放在文档的底部,这样可以确保在执行脚本之前页面的主体已经加载完毕。 ...

    JavaScript在XHTML中的用法详解

    然而,当在XHTML(可扩展超文本标记语言)文档中使用JavaScript时,需要遵循比HTML更严格的语法规则。这是因为XHTML是一种基于XML的标记语言,它要求所有元素都正确关闭,且不允许松散的语法。 在HTML中,以下代码...

    第2章 使用JavaScript1

    在本章“使用JavaScript1”中,我们将探讨如何创建HTML页面、理解JavaScript代码的嵌入方式以及解决相关问题。以下是这些知识点的详细说明: 一、创建HTML页面 创建HTML页面是JavaScript开发的基础,通常建议初学者...

    第一章 JavaScript基础语法

    链接外部 JS 脚本,就是将 JavaScript 代码专门写在同 XHTML 独立的文件中,这样的文件,我们一般会用 js 后缀名。在 XHTML 页面需要使用里面的函数的时候,再通过 script 元素将该文件引入使用。 引入外部 js 的...

    XHTML+ajax实战教程

    4. **内联与块级元素**:了解如何正确使用内联元素(如`&lt;span&gt;`、`&lt;a&gt;`)和块级元素(如`&lt;div&gt;`、`&lt;p&gt;`),以及它们在布局中的作用,是XHTML基础中的重要部分。 **Ajax核心技术** 1. **XMLHttpRequest对象**:Ajax...

    修复网页javascript方法及代码

    当使用XHTML或在严格模式下编写HTML文档时,需要特别注意如何嵌入JavaScript代码以避免解析错误。使用CDATA可以帮助解决这个问题: ```html &lt;script type="text/javascript"&gt; &lt;!-- // JavaScript代码 document....

    设计XHTML MP 内容

    9. **JavaScript优化**:虽然XHTML MP支持JavaScript,但应谨慎使用,因为移动设备的JavaScript性能可能不强。尽量使用轻量级的库,并延迟加载非关键脚本。 10. **测试与兼容性**:在多种设备和浏览器上进行测试,...

    HTML与XHTML权威指南(第五版)中文

    这使得XHTML文档更易于解析和自动化处理,但也意味着编写时需要更加注意语法的准确性。 在HTML和XHTML中,标签有开始标签和结束标签,如`&lt;p&gt;`和`&lt;/p&gt;`表示一个段落。某些元素是空元素,如`&lt;img&gt;`,它们只需要开始...

    JavaScript学习习题和实例

    - 在字符串中使用特殊字符时需要注意转义,如`\'`表示单引号。 - 常用字符串操作方法包括: - `charAt(index)`:获取指定索引处的字符。 - `substring(start, end)`:获取子字符串。 - `indexOf(substring)`:...

    XHTML+CSS+JS

    编写XHTML代码时,需要注意语法的规范性,比如所有标签必须闭合,属性值需加引号等。 CSS(Cascading Style Sheets)是用于控制网页元素样式和布局的样式表语言。通过CSS,开发者可以独立于内容来定义页面的呈现...

    XHTML 管理平台模板

    在使用这样的XHTML后台管理模板时,开发者需要注意以下几点: 1. **兼容性测试**:确保模板在主流浏览器上正常工作,如Chrome、Firefox、Safari和Edge。 2. **自定义调整**:虽然模板提供了基础框架,但可能需要根据...

    asp.net中倒计时自动跳转页面的实现方法(使用javascript).docx

    ### ASP.NET中使用JavaScript实现倒计时自动跳转页面的方法 #### 一、背景与应用场景 在Web开发中,有时我们需要实现用户操作后的倒计时自动跳转功能,例如密码修改成功后提示用户并自动跳转到首页。这种场景不仅...

Global site tag (gtag.js) - Google Analytics