第二章  在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>中的内容

 

Javascript高级程序设计读书笔记(第二章)的更多相关文章

  1. JavaScript高级程序设计 读书笔记 第二章

    <script>元素 直接在页面中嵌入JavaSript代码或包含外部JavaSript文件. 在代码中任何地方不能出现</script>,可通过转义字符'\'解决. 在XHT ...

  2. JavaScript高级程序设计学习笔记第二章

    1.向 HTML 页面中插入 JavaScript 的主要方法,就是使用<script>元素 2.HTML 4.01中定义了<script>元素的六个属性(方便记忆,可将6个属 ...

  3. JavaScript高级程序设计 读书笔记 第一章

    JavaScript是一种专门为与网页交互而设计的脚本语言 JavaScript实现 ECMAscript---核心 DOM---文档对象模型 BOM---浏览器对象模型

  4. 《JavaScript高级程序设计》笔记——第一章到第三章

    2019年,新年伊始,我打算好好重读一下<JavaScript高级程序设计>这本前端必备经典书.每天半小时. 以下内容摘自<JavaScript高级程序设计> 2019-2-1 ...

  5. JavaScript高级程序设计 读书笔记

    第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...

  6. javascript高级程序设计读书笔记-事件(一)

    读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而 ...

  7. javascript高级程序设计 读书笔记1

    第二章  在HTML中使用JS 加载JS有三种:行内,head头部和外部链接JS   最好使用外部链接<script src="example.js" ></sc ...

  8. Javascript高级程序设计读书笔记(第六章)

    第6章  面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...

  9. Javascript高级程序设计读书笔记(第10章 DOM)

    第10章 DOM 10.1  节点层次 每个节点都有一个nodeType属性,用于表明节点的类型.任何节点类型必是下面中的一个: Node.Element_NODE(1); NODE.ATTRIBUT ...

随机推荐

  1. Android入门1:使用VideoView和MediController播放视频

    最近在搞Android,入门曲线还是挺陡峭的,主要还是自己对Java的理解不够深入.前后学习了几天,把最近学习到的一些知识点总结归纳一下,正所谓温故而知新. 目前想搞一个禁播视频站,主要内容都是一些大 ...

  2. RAC的负载均衡有2种方式

    RAC的负载均衡有2种方式1:数据库服务器端 设置remote_listener2: 客户端tns配置 一般连接串这么写:ess_hb_i1=  (DESCRIPTION =    (ADDRESS ...

  3. cocos2dx 动画 一

    1.精灵的runAction方法 spt = Sprite::create("pean.jpg"); this->addChild(spt); MenuItemFont *i ...

  4. 《Boost程序库完全开发指南》读书笔记-日期时间

    ●timer库 #include <boost\timer.hpp> #include <boost\progress.hpp> 1.timer类 // timer类的示例. ...

  5. PHP扩展开发(3)-config.m4

    1. 宏命令 1.1. dnl 注释      1.2. 扩展的工作方式           1.2.1) PHP_ARG_WITH不需要第三方库           1.2.2) PHP_ARG_E ...

  6. SSH-key密钥生成

    为了能够不用输入密码访问git库(github/gitlab),需要使用ssh key ssh-keygen -t rsa -C "<your email address>&qu ...

  7. Lintcode--005(最长公共子序列)

    Given two strings, find the longest common subsequence (LCS).     最长公共子序列 Your code should return th ...

  8. gtest以及测试小结

    所有的测试,都是让未知的东西和已知的东西进行比较,如果测试结果和预期的一样,那么就认为被测对象是OK的否则视为有问题. python的单元测试是写一堆继承了unittest.TestCase类,每个类 ...

  9. 在类库中使用log4net

    最近在做一个类库,用的C#写的,为了DEBUG方便需要日志输出,于是找了log4net这个工具进行日志输出; 因为调用这个类库的是C++,而且本人对C++不是很熟悉,于是无法在app.config或者 ...

  10. 了解 Windows Azure 存储的可伸缩性、可用性、持久性和计费

    借助 Windows Azure存储,应用程序开发者及其应用程序和用户可以在云中使用可用性更高.持久性更长.可伸缩性更强的海量存储.开发者可以构建能随时随地高效访问数据的服务,在所需的时间段内存储任意 ...