javascript - 如何声明 JavaScript 和 CSS XHTML 兼容?

标签 javascript css xhtml

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

方法一:

<script type="text/javascript">
// <![CDATA[
CODE
// ]]>
</script>

方法二:

<script type="text/javascript">
/* <![CDATA[ */
CODE
/* ]]> */
</script>

第二个是否也适用于内联 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";
...

最佳答案

Which method is correct/recommended?

两者都一样好。

Is the second one also suitable for inline CSS?

是的。

但是,您只需要担心将脚本和样式 block 放在 <![CDATA[ 中当您要包含字符 < 时的部分或 &在 block 中。您几乎永远不会在 CSS 中使用它们。

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

And, is it possible/does it make sense to add some encoding declaration here

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

无论如何,并不是所有的浏览器都会关注 <script charset>属性,因此您必须使脚本的编码与包含它们的页面的编码相匹配。这使得 charset="..."相当多余。

@charset "utf-8";在外部样式表中是可以的,但是您几乎从不需要样式表中的非 ASCII 字符,因此很少见。 @charset在 JavaScript 中无效。

关于javascript - 如何声明 JavaScript 和 CSS XHTML 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884013/

相关文章:

html - 验证服务 - 电子邮件消息验证失败

javascript - DOM 级别有何不同,它们之间如何相互关联?

javascript - 更新 .then 内的 $scope 吗?

javascript - 将 jvectormap 连接到 ajax 访问的数据库

javascript - 如何使文本显示在图像映射区域的单独 div onClick 中?

html - 如何使用 Selenium Webdriver 选择嵌套的 css 元素?

javascript - 如何仅针对鼠标事件而不是键盘选项卡式导航删除 anchor 链接的虚线焦点轮廓?

javascript - expressjs 文件上传,检查是否确实有文件发送,指定最大文件大小并保留其名称

javascript - 如何使用 meteor 从集合中提取项目?

javascript - 如何在移动设备中滚动到页面顶部