首页 > 网站 > WEB开发 > 正文

Javascript高级程序设计读书笔记(第二章)

2024-04-27 14:06:41
字体:
来源:转载
供稿:网友

javascript高级程序设计读书笔记(第二章)

第二章 在HTML中使用Javascript

2.1<script>元素

延迟脚本(defer = "defer")表明脚本在执行时不会影响页面的构造,脚本会被延迟到整个页面都解析完毕后再运行。相当于告诉浏览器立即下载,但延迟执行。HTML5规定要求脚本按照它们出现的先后顺序执行。

异步脚本(async)如果有多个脚本文件,执行顺序不确定,指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。

XHTML代码的规则比编写HTML严格得多,下面的代码块在HTML中是有效地,但是在XHMTL中是无效的

<script type="text/javascript">    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中<(小于号)在XHMTL中将被当作开始一个新标签来解析,但是作为标签来讲,小于号后面不能跟空格,因此导致语法错误。可以使用&lt;代替小于号。

  保证能再XHTML中能正常执行的另外一个方式是用一个CData片段来包含Javascript代码,如下所示

<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>

  在兼容CDATA的浏览器中,该方法可以解决问题,还有不少浏览器不兼容XHTML,不支持CDATA片段,使用Javascript注释掉标记即可,如下所示

<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>

2.3文档模式

混杂模式(quirks mode)会让IE的行为与IE5相同,

标准模式(standards mode)让IE的行为更接近标准行为。

这两种模式主要影响CSS内容的呈现,但在某些情况下也会影响到Javascript的解释执行。

如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式,不推荐这种做法,不同浏览器在这种模式下的行为差异非常大。

  IE又提出了一种准标准模式(almost standards mode),这种模式下的浏览器很多都是符合标准的。准标准模式可以通过过渡型或框架集型文档类型来触发。

2.4 <noscript>元素

  包含在<noscript>元素中的内容只有在下列情况下才会显示出来:

  • 浏览器不支持脚本
  • 浏览器支持脚本,但脚本被禁用

  符合上述任何一个标准,浏览器都会显示<noscript>中的内容

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表