【第五章-最佳实践】javascript DOM 编程艺术-学习笔记

平稳退化(graceful degradation):确保网页在没有Javascript的情况下也能正常工作。

分离JavaScript:把网页的结构和内容与JavaScript脚本的动作行为分开。

向后兼容性:确保老版本的浏览器不会因为你的JavaScript脚本而死掉。

性能考虑:确定脚本执行的性能最优。


JavaScript使用window对象的open()方法来创建新的浏览器窗口。

window.open(url,name,features)

url:想在新窗口里打开的URL地址。如果省略,将弹出一个空白的浏览器窗口。

name:新窗口的名字。可以在代码里通过这个名字与新窗口进行通信。

features:一个以逗号分隔的字符串,表示新窗口的各种属性——长宽,初始显示位置,工具条,菜单条

function popUp(winURL){
    window.open(winURL,"popup","width=320,height=480");
}

“javascript:”伪协议

真协议用来在因特网上的计算机之间传输数据包,如HTTP协议(http://)

伪协议则是一种非标准化的协议

 “javascript:”伪协议:

<a href="javascript:popUp('http://www.example.com/');">Example</a>


内嵌的事件处理函数

<a href="#" οnclick="popUp('http://www.example.com/')"; return false;" >Example</a>

因为使用了return false语句,这个链接不会真的被打开。#仅仅提供一个链接记号,实际工作由onclick完成。


对象检测

if(method){

statements

}

例如:检查浏览器是否支持getElementById()方法

function myFunction(){
    if(!document.getElementById){
    return false;
    }
}


平稳退化,渐进增强用例:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>Example</title>
<script type="text/JavaScript">
window.onload = function() {
  if (!document.getElementsByTagName) return false;
  var lnks = document.getElementsByTagName("a");
  for (var i=0; i<lnks.length; i++) {
    if (lnks[i].getAttribute("class") == "popup") {
      lnks[i].onclick = function() {
        popUp(this.getAttribute("href"));
        return false;
      }
    }
  }
}

function popUp(winURL) {
  window.open(winURL,"popup","width=320,height=480");
}

</script>
</head>
<body>
<a href="http://www.example.com/" class="popup">Example</a>
</body>
</html>

小结:

本章介绍了一些与DOM脚本编程工作有关的概念和实践,它们是:

平稳退化

分离Javascript

向后兼容

性能考虑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值