第十三章 Web浏览器中的javascript
①
eg:下面两行代码实际上执行的是相同的功能
var answer = 42;
window.answer = 42;
③每个window对象都定义了一个document属性,该属性引用与这个窗口关联在一起的Document对象,location属性引用与该窗口关联在一起的Location对象.当一个web浏览器显示一个带帧的文档,顶层的windows对象的frames[]数组包含了对代表帧的windows对象的引用.因此,在客户端javascript中,表达式document代表的是当前窗口的document对象,而表达式frames[1].document引用的是当前窗口的第二个子帧的document对象.
eg:要引用这些表单,可以编写如下的代码:
window.document.forms[0]
④每个document对象都有一个forms[]数组,它包含的是代表该文档中出现的所有HTML表单的Form对象.
每个Form对象都有一个elements[]数组,该数组包含了出现在表单中的各种HTML表单元素的对象.
eg:
parent.frames[0].document.forms[0].elements[3].options[2].text
⑤defer属性
使用<script>标记中的defer属性来提示浏览器这样做事安全的:继续解析HTML文档并延迟脚本的执行,直到遇到一个无法延迟的脚本.
<script></script>
⑥ <noscript>标记
HTML定义了<noscript>标记,用来保存只有浏览器中的javascript被关闭的时候才提交的内容.
⑦HTML中的事件句柄
⑧URL中的javascript
eg:
第十四章 脚本化浏览器窗口
①计数器
使用setTimeout()还有一个有用的技巧,就是注册一个函数在延迟0微妙后调用.这段代码没有立刻调用但是会"尽可能快地"运行.实际上.setTimeout()告诉浏览器,当它为当前任何挂起的事件运行完事件句柄并且完成了文档的当前状态的更新之后,就调用该函数.
②replace()和reload()方法
③获取有关窗口大小和位置的信息:
//获取大小
var windowWidth = window.outerWidth;
var windowHeight= window.outerHeight;
//获取位置
var windowX = window.screenX;
var windowY = window.screenY;
④Screen对象和Navigator对象
Screen对象提供有关用户显示器的大小和可用的颜色数量的信息.
Navigator对象的navigator属性的引用的是包含Web浏览器总体信息
⑤打开和操作窗口
关闭窗口用close()方法
moveTo()方法可以将窗口的左上角移动到指定坐标.
moveBy()方法可以将窗口上移,下移,左移,右移指定数量的像素.
resizeTo()方法和resizeBy()方法可以按照相对数量和绝对数量调整窗口的大小.
focus()方法可以请求系统将键盘焦点赋予窗口,还可以把窗口移动到堆栈顺序的顶部,使窗口可见.
blur()方法则会放弃键盘焦点.
scrollBy()方法可以将窗口中显示的文档向左右上下滚动指定数量的像素.
scrollTo()可以将文档滚动到一个绝对位置.它将移动文档以便在窗口文档区的左上角显示指定的文档坐标.
⑥对话框
confirm()方法要求用户点击一个OK或Cancel按钮来确认或取消操作.
Prompt()方法请求用户输入一个字符串.
这两个方法都会产生阻塞,也就是说,在用户关掉它们所显示的对话框之前,它们不会返回.这就意味着在弹出一个对话框时,代码就会停止运行.
eg:
⑦
多窗口和多帧没看
第十五章 脚本化文档
①
②遗留DOM:文档对象集合
anchors[]:
Anchor对象的一个数组,该对象代表文档中的锚(锚是文档中的一个命名的位置,它使用一个具有的name属性的<a>标记来创建,而不是使用一个href属性来创建).一个Anchor对象的name属性保存了name属性的值.
applets[]:
Applet对象的一个数组,该对象代表文档中Java applet
forms[]:
Form对象的一个数组,该对象代表文档中的<form>元素.每个Form对象都有自己的一个名为elelments[]的集合属性,其中包含了代表表单中所包含的表单元素的对象.
images[]:
Image对象的一个数组,该对象代表文档中的<img>元素.
links[]:
Link对象的一个数组,该对象时代表文档中超文本链接的Link对象.超文本链接是在HTML中用<a>标记创建的,并且偶尔会用客户端图像地图的<area>标记来创建.
③命名Document对象
eg:
<form name="shipping">
<input type="text" name="zipcode" />
</form>
document.shipping.zipcode
如果两个元素的name属性同名,则用document对象引用这个name时就变成了保存了这两个元素的引用的一个数组.
④节点
Node接口定义了遍历和操作树的属性和方法.Node对象的childNodes属性返回节点的孩子的一个列表,并且firstChild,lastChild,nextSibling,previousSibling和parentNode属性提供了遍历节点的树的一种方法.像appendChild(),removeChild(),replaceChild()和insertBefore()这样的方法能够向一个文档树中添加节点或者从一个文档树中移除节点.
节点的类型
每个Node对象都有一个nodeType属性,它指定了节点是什么类型的.
DOM树根部的Node是一个Document对象.这个对象的documentElement属性引用了一个Element对象,它代表了文档的根元素.
⑤在文档中查找元素
document.documentElement属性引用了作为文档根元素的<html>标记
document.body属性引用了<body>标记.通常后者比前者更加有用.
Document对象的方法
getElementsByTagName()方法:获取任何类型的HTML元素的列表.如果将特殊字符串"*"传递给getElementsByTagName()方法,它将返回文档中所有元素的列表,排列顺序为它们在文档中出现的顺序(IE5 和IE5.5不支持这种特殊额用法.).也可以用HTMLDocument.all()数组获取所有元素.
getElementById()方法:该方法只返回一个元素,该元素具有匹配的id属性.
getElementsByName()方法:根据元素的name获得对象,由于页面中元素的name可以重复,比如多个RadioButton的name一样,因此getElementsByName返回值是对象数组。说说name属性,name属性是input标签的内建属性,早期浏览器的getElementsByName方法是为了方便的获取用户的输入。由于name只是input的内建属性,其它标签没有,所以getElementsByName方法不能在别的标签中识别这一属性,因此getElementsByName方法只能用于input标签
Element对象方法
getElementsByTagName()方法:返回一个元素,该元素师调用它的那个元素的后代,该方法不会检索整个文档来查找特定类型的元素,而是只检索给定的元素.
⑥修改属性
一种方法是调用element.setAttribute().
eg:
<script type="text/javascript">
var headline = document.getElementById("headline");
headline.setAttribute("align", "center");
</script>
也可以直接使用它的属性(即使是被废弃使用的属性)
<script type="text/javascript">
var headline = document.getElementById("headline");
headline.align = "center";
</script>
⑦给文档添加内容
Document.createElement()方法和Document.createTextNode()方法创建新的Element节点和Text节点,而方法Node.appendChild(),Node.insertBefore()和Node.replaceChild()可以用来将它们添加到一个文档.
⑧innerHTML属性
当查询一个html元素的这一属性值的时候,所得到的是该元素的孩子的一个HTML文本字符串
第十六章 层叠样式表和动态HTML
①关联延时表和文档
eg:合并在html文档中
<style type="text/css">
body { margin-left:30px; margin-right:15px; background-color:#ffffff }
p { font-size:24px;}
</style>
eg:利用<link>标记引用css样式
<link rel="Stylesheet" href="mystyles.css" type="text/css" />
eg:如果web页面包含一个特定于页面的带有一个<style>标记的样式表,可以使用css的@import指示符来在该特定于页面的样式表中包含一个共享的css文件:
<style type="text/css">
@import "mystyles.css";
body { margin-left:30px; margin-right:15px; background-color:#ffffff }
p { font-size:24px;}
</style>
②绝对定位
css的position属性:
static:这是默认值,指定根据文档内容的正常流动对元素定位.
absolute:用这个值可以设置元素相对于它的包含元素的位置.
fixed:用这个值可以设置元素在浏览器窗口中的位置.
relative:用这个值将根据常规流布置元素,然后相对于它在常规流中的位置进行调整.
margin和padding属性都指定了一个元素周围的空白区域.不同之处在于,margin指定了边框外部的空间,即边框和相邻的元素之间的部分;而padding属性指定了边框内部的空间,即边框和元素内容之间的部分.
eg:一下代码等价
第三维:z-index
该属性定义了元素的第三维,它可以设置元素的堆叠顺序.该属性是个整数,默认值为0,可以为正或负(第四代浏览器不支持负的),它们的绘制顺序是从最低的z-index到最高的z-index,最大值的元素出现在所有元素的最上边.
③元素的显示和可见性
visibility和display这两个属性都可以显示和隐藏元素,不过也有区别:
visibility属性设为hidden,使元素不可见,但会在文档布局中保留它的空间.
display属性设为none,是元素隐藏且文档布局不会为其保留空间.
部分可见性
使用overflow和clip属性则可以显示元素的一部分.
overflow属性指定了在元素内容超过指定大小时会发生什么.
该属性可设置的值说明如下:
visible:内容可以溢出,如果必要可以绘制在元素框之外,这是默认值.
hidden:剪切并隐藏溢出的内容,以免在大小和定位属性定义的区域外绘制任何内容.
scroll:元素框永久具有水平滚动条和垂直滚动条.
auto:只在内容超出元素大小时才显示滚动条,而不是永久显示.
③激活和关闭样式表
<link>和<script>元素都定义了一个disabled属性.若该属性设置为true,则<link>和<script>元素相关的样式表就会被关闭,并且会被浏览器忽略.
第十七章 事件和事件处理
①
②
③
通常,如果浏览器执行某种默认动作来响应一个事件,那么可以返回false阻止浏览器执行那个动作.
关于返回false的规则有一个例外,即当用户把鼠标移动一个超链接(或图像)上时,浏览器的默认动作是在状态栏中显示链接的URL.要阻止这种情况发生,可以让onmouseover事件句柄返回true.
④事件传播(冒泡)
在事件传播过程中,任何事件句柄都可以调用表示那个事件的Event对象的stopPropagation()方法,停止事件进一步传播.
⑤事件句柄的注册
调用对象的addEventListener()方法为特定元素注册事件句柄,包含三个参数
第一个参数是要注册句柄的事件类型,事件类型应该是含有小写HTML句柄属性名的字符串,没有前缀"on".因此,如果用HTML属性onmousedowm,或在0级模型中用onmousedowm属性,那么在2级事件模型中就应该使用字符串"mousedown"
第二个参数是句柄(或叫监听器)的函数,在指定类型的事件发生时调用该函数.在调用这个函数时,传递给它的唯一参数是Event对象.
第三个参数是布尔值,若为true,则指定的事件句柄将在事件传播的捕捉阶段用于捕捉事件.否则,事件句柄就是常规的,当事件直接发生在对象上,或发生在元素的子女上,又向上起泡到该元素时,该句柄将被触发.
eg:
与addEventListener()方法匹配的是removeEventListener()方法,它的三个参数与前者相同,不过是从对象中删除事件处理函数,而不是添加它.
⑥■■■■■■■■■■
⑦把对象出租为事件句柄
⑧按键事件的类型
有三种按键事件类型,分别是keydown,keypress,keyup,它们分别对应onkeydown,onkeypress,onkeyup这几个事件句柄.
如果一个按键被按下并自动重复,可能在keydown和keyup之间有多个keypress事件,但是这和操作系统及浏览器相关,而不能想当然.
⑨
⑩onload事件
当文档完全载入之后,Web浏览器启动一个Windows对象上的onload事件,这个事件通常用来触发那些需要访问整个文档的代码.
第十八章 表单和表单元素
①Form对象
Form对象代表了一个表单,通常该对象可以作为forms[]数组的一个元素来使用,而这个数组是Document对象的一个属性.
Form对象的一个属性是elements[]数组,它包含表示各种表单输入元素的javascript对象(各种类型),按元素在文档中出现的顺序排放.
Form对象的submit()方法可以提交表单,调用reset()方法可以重置表单元素.为了配合submit()和reset()方法,Form对象还提供了事件句柄onsubmint和onreset,前者用来探测表单的提交,后者用来探测表单的重置.
注意,只有真正点击提交按钮才会触发onsubmit事件句柄,调用表单的submit()方法则不会触发它.
②HTML表单元素
submit元素和reset元素与button元素相似,只是它们有相关的默认动作(提交和重置表单)
第二十二章 脚本化客户端图形.
①传统的图像翻滚
②屏幕外图像和缓存
③无干扰的图像翻滚
- 【JavaScript权威指南(第五版)】笔记之第一部分 核心javascript (第1章~第12章)
第一章 javascript概述 ①.javascript是一种松散类型语言;也是一种解释型语言; 第二章 词法结构 ①.大小写敏感 第三章 数据类型和值 ①.isFi ...
- 《JavaScript权威指南 第六版 中文版》(一)
<JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...
- javascript权威指南第6版学习笔记
javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console ...
- JavaScript权威指南(第6版)(中文版)笔记
JavaScript权威指南(第6版)(中文版)笔记
- 《JavaScript权威指南(第6版)(中文版)》PDF
简介自1996年以来,JavaScript的:权威指南已为JavaScript圣经程序员,程序员指南和全面的参考,以核心语言和客户端JavaScript API的Web浏览器定义.第6版包括HTML5 ...
- Note | Javascript权威指南[第六版] 第1章:Javascript概述
JavaScript是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.JavaScript的语法源自Java,它的一等函数(first-class function)来 ...
- [在读] javascript权威指南第六版
耽搁了有大半年没看,记得当时看到5分之2了吧.权威指南是不管读几遍都能觉得有新收获的书^^
- JavaScript权威指南第6版
描述网页内容的html,描述网页样式的css,描述网页行为的JavaScript js,适合面向对象和函数式编程风格 es5新特性 第二章 词法结构 1.JavaScript程序是用Unicode字符 ...
- JavaScript 权威指南第6版 - [阅读笔记]
JavaScript 基础 Page 13 (1)<script> 的属性:async,charset,defer='defer',language已废,src,type (2)n ...
随机推荐
- 基于adt-bundle的Android开发环境搭建
web与移动是当今的热门,怎么说都得会一点,完全不懂是不行的. 一直想玩一下移动开发,穷屌丝暂时没有iPhone和Mac,所以先拿Android开刀. 之前也有想过玩一下Android,但是都被各种博 ...
- 基于samba实现win7与linux之间共享文件_阳仔_新浪博客
基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.
- 独树一帜的字符串匹配算法——RK算法
参加了雅虎2015校招,笔试成绩还不错,谁知初面第一题就被问了个字符串匹配,要求不能使用KMP,但要和KMP一样优,当时瞬间就呵呵了.后经过面试官的一再提示,也还是没有成功在面试现场写得.现将该算法记 ...
- [C++]VS2010功能设置
VS2010快捷键设置 工具->选项->环境->键盘->[显示命令包含] 下面输入“对齐”关键字->窗口显示关于“对齐”的所有操作命令->选中“某一个”->[ ...
- Oracle10g完全卸载正确步骤
Oracle卸载要求比较严格,不能简单的卸载就完事了:当然Oracle卸载也没有那么难,只是步骤比较多.Oracle10g还是Oracle11g卸载步骤都是一样的.下边详细介绍一下. 找到Oracle ...
- webServices
引用项目的配置文件: <system.serviceModel> <bindings> <basicHttpBinding> <!--旅游供应--> & ...
- Android Handler的简单使用
大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title. 首先我们看一下习惯了Java编程的人,在不知道Handl ...
- java的socket 编程
之前在学校的时候,有时间但是总是学不进去,现在工作了,总想多学点东西,但是又是没有时间来学习,只能在工作的闲暇之余,给自己充充电,随着学习的深入,越来月发现Java真的很强大,几乎什么都可以做的,以下 ...
- SAP PP 生产订单变更记录保存
*&---------------------------------------------------------------------* *& 包括 ZXCO1U01 *&am ...
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 44 bytes) in
最近莫名出现这个错误. 研究一下原因很奇葩呢. 原因:sql获取数据库中数据,取出数据赋给变量,数据太多,超过memory_limit内存设置了. 解决方法:设置memory_limit不建议.优化代 ...