[关闭]
@tsingwong 2016-02-15T15:57:35.000000Z 字数 1465 阅读 808

DOM day3

DOM JavaScript


1. 创建新浏览器窗口

JavaScript使用window对象的open()方法来创建新浏览器窗口。该方法有三个参数:

window.open(url,name,features)

三个参数都是可选的。
* url,想在新窗口打开的网页的URL地址。省略该参数,弹出空白浏览器窗口。
* name,新窗口的名字。可以在代码里通过这个名字与新窗口进行通信。
* features,一个以逗号分隔的字符串,其内容是新窗口的各种属性。这些属性包括新窗口的尺寸(宽度和高度)以及新窗口被启用或急用的各种浏览功能(工具条、菜单条、初始显示位置等)。

2. "JavaScript:"伪协议

“真”协议用来在因特网上的计算机之间传输数据包,如HTTP协议(http://)、FTP协议(ftp://)等
“伪”协议则是非标准的协议。“JavaScript:”伪协议让我们通过一个链接来调用JavaScript函数。

3. 结构与样式的分离

CSS技术最大优点在于,能将Web文档的内容结构(标记)和版面设计(样式)分离开来。将样式全部转移到外部文件去。

4. 分离JavaScript

JavaScript语言不要求事件必须在HTML文档里处理。可以在外部JavaScript文件里面把一个事件添加到HTML文档中的某个元素上:

element.event = action

如果想把一个事件添加到某个特定id属性的元素上,用getElementById解决问题;

getElementById(id).event = action

如果事情涉及多个元素,可以用getElementsByTagName和getAttribute把事件添加到有着特定属性的一组元素上。步骤如下:
1. 把文档里的所有链接放到一个数组里。
2. 遍历数组。
3. 如果某个链接的属性等于指定值,就表示这个链接被点击时,调用目标函数。

5. 对象检测

将方法打包在一个if语句里,可以根据这条if语句的条件表达式的求值结果是true(方法存在)还是flase(方法不存在)来决定应该采取怎样的行动:

    if(method){
    statements
    }

例如,如果有一个使用了getElementById()方法的函数,就可以在调用getElementById()方法之前先检查用户所使用的浏览器是否支持该方法。在使用对象检测时,一定要删除方法名后面的圆括号,如果不删除,测试的将是方法的结果,无论方法是否存在:

  1. function myFunction(){
  2. if(document.getElementById){
  3. statements using getElementById
  4. }
  5. }

缺点:编写出来的函数会增加一堆花括号。
可以把测试条件改为“如果你不理解这个方法,请离开”:

  1. if(!method) return false;

6. 浏览器嗅探技术

通过提取浏览器提供商提供的信息来解决向后兼容问题。

7. 性能优化

  1. 尽量少访问DOM和减少标记
  2. 合并和放置脚本。将script标签放在文档末尾,标记之前。
  3. 压缩脚本。把脚本文件中不必要的字节,如空格和注释,统统删除,从而达到压缩文件的目的。多数情况下有两个版本,一个是工作副本,可以修改代码和添加注释;另一个精简副本,用于放在站点上。最好精简副本文件名后加上min字样。有专门的代码压缩工具:JSMin,YUI Compressor等
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注