javascript 高级程序设计 二

这里我们直接进入主题:

  在JS刚刚开始的时候,必须面临一个问题,那就是如何使的JS的加载和执行不会影响web核心语言HTML的展示效果,和HTML和谐共存。

在这个背景下<script>标签出现了,直到现在已经被正式纳入HTML规范当中,所以我们今天就开始聊一聊<script>.。

1、<script>标签其他属性

  asyc:可选,表示立即下载script文件,但不妨碍页面的其他操作,但是它并不保证浏览器按照所写的<script>标签的顺序进行一个个的加载

  defer:表示脚本执行时并不影响页面的构造,也就是在JS脚本下载完成到JS脚本被解析器解析完成这段时间,被放到了整个页面都解析完毕

以后来执行解析JS的操作,并且解析的时候是按照所写的<script>标签的顺序进行一个个的加载。但是这些在HTML5会忽略给嵌入JS脚本的defer

属性,所以还是建议按照Yahoo!前端手册中规定的,把JS脚本放到文档的最后,也就是</body>之前

  type:使用的脚本语言的内容的类型(MIME类型),不写的时候默认是test/javascript,

  src:包含要执行代码的外部文件,这个属性的值是可以跨域来进行加载解析文件,和<img>的src一样,如下

  <script src="http://www.somewhere.com/init.js"></script>

2、XHTML中的应用

  xhtml:可扩展的超文本标记语言,要想使用XHTML模式,必须把页面的MIME类型指定为"application/xhtml+xml",

  在html中如果<script>标签中又包含了一个</script>字符串,那么html就会认为JS脚本已经结束所以会产生一个错误用一下代码来替换:

  <script type="text/javascript">

    alert("</script>");

  </script>来替换alert("</script>");

  而在xhtml中的script标签都是自闭标签,写成上面的格式则被忽略。所以在XHTML中<是有特殊的含义,在XHTML中表示小于就要用到:&lt; 来替换

3、CData片段:

  CData片段是文档中的一个特殊的区域,他中的代码不会被浏览器进行解析,写法:

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

    function func(a,b){

      xxxx

    }

  }]></script>

原文地址:https://www.cnblogs.com/wang985850293/p/5234766.html