刚刚开始自学前端,如果不对请指正;欢迎各位技术大牛指点。

开始学习《javascript dom编程艺术》,整理一下学习到的知识。今天刚刚看到第六章,记下get到的几个知识点。

优雅降级

看到版本翻译为预留退路,刚刚看到个名词,我觉得很奇怪,以前没有听说过啊。不过看到英文注释就知道了Graceful degradation不就是优雅降级么,听说过!

书中举了个例子,点击一个链接,弹出一个窗口的方法。

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

给出了两个反面典型

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

上面为内嵌事件处理函数,下面一行为javascript伪协议。两种处理方式的坏处就是如果浏览器不支持javascript,用户不能正常地使用。

给出的处理方式为

<a href="http://www.example.com/" onclick="popUp(this.href); return false;">Example</a>

向后兼容

向后兼容,考虑旧版本浏览器的兼容性,这个很好理解,给出一个例子

if (!getElementById)  return false; 

直正觉得get的是在美术馆例子中的一小段的代码的应用。这个小技巧不算是向后兼容了,应该算是函数优化了。

//显示图片方法
function showPic(whichPic){
if(!document.getElementById("placeholder")) return true;//如果不存在图片,返回true
//TODO 获得图片地址并替换
if(!document.getElementById("description")) return false;//如果不存在描述,返回false
//TODO 获得描述信息并替换
return false;
}
//绑定<a>的点击事件
links[i].onclick=function(){
return showPic(this)
}

上面是啥意思呢,就是说如果不能正常得到图片的结点,就返回true,那么onclick执行打开图片链接的功能,浏览跳转到一张图片的页面。如果能得到图片结点,那么得到的图片会显示在预留的位置,名为placeholder的容器里。这种功能我也能实现,不过没有他的这么简洁。

多个函数绑定onload函数

这个只给出代码,我觉得我再看这篇笔记的话,应该也能看懂的,就不多做解释了。这里只是把代码记录一下,收藏了~

function addLoadEvent (func) {
var oldLoad = window.onload;//先将现有的事件处理函数存到一个变量中
if(typeof window.onload!='function'){//如果还没有绑定任何函数,把新变量追加给它
window.onload=func;
}else{
window.onload=function(){
oldLoad();
func();//如果绑定函数,在新函数末尾追加
}
}
}
//简单地测试一下
function function_name (argument) {
console.log(argument);
}
addLoadEvent(function_name("hehe"));
addLoadEvent(function_name("haha"));

《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数的更多相关文章

  1. javascript dom编程艺术笔记之图片库的改进

    dom的操作要遵守的原则 1.平稳退化 2.分离javascript 3.向后兼容 4.性能考虑 改进后的显示图片方法 function showpic(whichpic){ if(!document ...

  2. JavaScript DOM编程艺术 笔记(一)

    探测浏览器品牌版本代码-----浏览器嗅探 代码 JavaScript==ECMAScript java几乎可以部署在任何环境,js只应用于web浏览器 API是一组得到各方面共同认同的基本约定(元素 ...

  3. javascript dom编程艺术笔记第三章:DOM操作的5个基本方法

    JavaScript的 DOM操作,主要是对DOM这三个字母中D.O.M的操作.D代表的是document(文档),即我们可以使用javascript对文档进行操作,O代表的是object(对象),对 ...

  4. JavaScript DOM编程艺术 笔记(四)

    DOM document   object model(map) 家谱树---节点树 父 子  兄弟 元素节点  <div> 文本节点  内容 属性节点   value  src getE ...

  5. JavaScript DOM编程艺术 笔记(三)函数

    函数function 是在你的代码里随时调用的语句 每个函数是个短小的脚本,arguments,传递的参数 function name(arguments){ statements; } functi ...

  6. javascript dom 编程艺术笔记 第四章:图片库

    首先先建立一个html文件,建立一个图片库 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  7. JavaScript DOM编程艺术 笔记(二)语句操作

    操作 var total = (1+4)*5; year = year +1; year++; var message = "i am" + "girl"; 是 ...

  8. Javascript DOM 编程艺术(第二版)读书笔记——基本语法

    Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...

  9. 《JavaScript DOM 编程艺术》 学习笔记

    目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...

随机推荐

  1. Android中 Http请求

    HttpClient public class MainActivity extends Activity { private Button button; @Override protected v ...

  2. tomcat 发布webService

    <!-- tomcat发布webservice时所需jar --> <dependency> <groupId>com.sun.xml.ws</groupId ...

  3. js、jquery、css使用过程中学到的一些方法技巧

    快速查看 1 动态创建script/link/style标签 2 在不适合使用iframe的情况下,让页面像iframe那样能分块滚动 3  鼠标在元素上时显示tip风格的提示信息 1.动态创建scr ...

  4. git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚

    [git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br  (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退 ...

  5. ZOJ 3261 - Connections in Galaxy War ,并查集删边

    In order to strengthen the defense ability, many stars in galaxy allied together and built many bidi ...

  6. HDU 1829 - A Bug's Life

    Problem Description Background Professor Hopper is researching the sexual behavior of a rare species ...

  7. mysql优化方案总结

    u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引u ...

  8. Which PHP mode? Apache vs CGI vs FastCGI

    Which PHP mode? Apache vs CGI vs FastCGI There are multiple ways to execute PHP scripts on a web ser ...

  9. python基础教程第3章——字符串

    1.字符串格式化 字符串格式化操作符%+转换标志+最小字段宽度+点后跟精度值+转换类型 String模块提供另外一种格式化方式 from string import Template s=Templa ...

  10. poj - 1228 - Grandpa's Estate

    题意:原来一个凸多边形删去一些点后剩n个点,问这个n个点能否确定原来的凸包(1 <= 测试组数t <= 10,1 <= n <= 1000). 题目链接:http://poj. ...