如何声明JavaScript和CSS XHTML兼容?

joy*_*yce 4 javascript css xhtml

我想知道如何在CDATA部分中声明JavaScript代码,以便它与XHTML兼容.哪种方法正确/推荐?

方法1:

<script type="text/javascript">
// <![CDATA[
CODE
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)

方法2:

<script type="text/javascript">
/* <![CDATA[ */
CODE
/* ]]> */
</script>
Run Code Online (Sandbox Code Playgroud)

第二个也适合内联CSS吗?

并且,是否有可能/在这里添加一些编码声明是有意义的

<script type="text/javascript" charset="utf-8">
...
<style type="text/css" media="screen" charset="utf-8">
...

or

<script type="text/javascript">
@charset "utf-8";
...
<style type="text/css" media="screen">
@charset "utf-8";
...
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 6

哪种方法正确/推荐?

两者都同样好.

第二个也适合内联CSS吗?

是.

但是,您只需要担心在<![CDATA[要包含字符<或块中时将脚本和样式块放在一个部分&中.你几乎不会在CSS中使用它们.

您可以在JavaScript中使用它们,但通常最好通过将任何大量代码放在它所属的外部脚本中来避免此问题.内联脚本块往往更适合放入数据和脚本调用调用,这很少需要使用<&(除了字符串文字值,在这种情况下,有一个参数可以将它们编码为例如.\x3C).

并且,在这里添加一些编码声明是否可行/是否有意义

charset="..."不可以.该属性对外部文件只有任何意义(并且不存在,<style>因为它永远不是外部文件).内部内容已经与包含文档的其余部分同时从字节解码为字符,因此charset在这一点上没有意义.

在任何情况下,并非所有浏览器都会关注该<script charset>属性,因此您必须使脚本的编码与包含它们的页面的编码相匹配.这使得charset="..."多余.

@charset "utf-8";在外部样式表中没有问题,但在样式表中几乎不需要非ASCII字符,所以看到它是不常见的.@charset在JavaScript中无效.