html 升级为 xhtml 后,编写格式更加严格.
比如:
<script type="javascript/text">
function Remove(a,b)
{
if(a<b)
{
......
}
}
</script>
在XHTML 标准下, <(小于号) 的出现在XHTML中会被解释为一个标签的开始标识,所以导致上面的函数根本无法运行.除非使用html实体 < 来代替<(小于号)
如何避免js脚本在html和xhtml下都能准确执行,而且不改变javascript代码呢?
这里要用到XHTML 中一个 CData 属性来定义一个javascript代码段.作用:CData定义的是一个特殊的区域,此区域里的任何内容都被当做文本格式处理,不需要解析.
所以上面的函数摇身一变
<script type="javascript/text">
<![CData[
function Remove(a,b)
{
if(a<b)
{
......
}
}
]]>
</script>
看上去很不美观,也不符合我们的编码习惯,但是在兼容XHTML的浏览器下可以正常执行javascript脚本.
这样貌似解决问题了,其实噩梦还没有结束,当我们遇到不兼容XHTML的浏览器时,<![CData[... ]]>这样的片段根本不解析,所以我们还需要用javascript的注释符 注释掉 <![CData[ ...]]> 这样的片段即可.
<script type="javascript/text">
//<![CData[
function Remove(a,b)
{
if(a<b)
{
......
}
}
//]]>
</script>
比如:
<script type="javascript/text">
function Remove(a,b)
{
if(a<b)
{
......
}
}
</script>
在XHTML 标准下, <(小于号) 的出现在XHTML中会被解释为一个标签的开始标识,所以导致上面的函数根本无法运行.除非使用html实体 < 来代替<(小于号)
如何避免js脚本在html和xhtml下都能准确执行,而且不改变javascript代码呢?
这里要用到XHTML 中一个 CData 属性来定义一个javascript代码段.作用:CData定义的是一个特殊的区域,此区域里的任何内容都被当做文本格式处理,不需要解析.
所以上面的函数摇身一变
<script type="javascript/text">
<![CData[
function Remove(a,b)
{
if(a<b)
{
......
}
}
]]>
</script>
看上去很不美观,也不符合我们的编码习惯,但是在兼容XHTML的浏览器下可以正常执行javascript脚本.
这样貌似解决问题了,其实噩梦还没有结束,当我们遇到不兼容XHTML的浏览器时,<![CData[... ]]>这样的片段根本不解析,所以我们还需要用javascript的注释符 注释掉 <![CData[ ...]]> 这样的片段即可.
<script type="javascript/text">
//<![CData[
function Remove(a,b)
{
if(a<b)
{
......
}
}
//]]>
</script>