JavaScript学习系列4 案例研究:图片库改进版
2012-02-12 14:26
148 查看
优秀的网页应该要支持以下情况
平稳退化:当JavaScript功能被禁用,用户也可以实现基本功能。
JavaScript与HTML标记应该要分离。
添加事件处理函数。检查当前浏览器是否支持我们使用的函数。
结构化程序设计。函数应该只有一个入口和一个出口。但实际工作中,过分拘泥于这项原则往往会使代码变得难以阅读。如果函数有多个出口,我们应该把这些出口集中在开头部分。
网页加载完毕后再执行JavaScript函数
修改后的js为
window.onload = addLoadEvent(prepareGallery);
function addLoadEvent(func) {
var oldload = window.onload;
if(typeof window.onload != 'function') {
window.onload=func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function showPic(whichpic) {
if(!document.getElementById("placeholder")) return false;
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
if(placeholder.nodeName != "IMG") return false;
placeholder.setAttribute("src", source);
if(document.getElementById("description")) {
var text = whichpic.getAttribute("title")?whichpic.getAttribute("title"):"";
var description = document.getElementById("description");
if(description.firstChild.nodeType == 3) {
description.firstChild.nodeValue = text;
}
}
return true;
}
function prepareGallery() {
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
if(!document.getElementById("imagegallery")) return false;
var gallery = document.getElementById("imagegallery");
var links = gallery.getElementsByTagName("a");
for(var i=0; i<links.length; i++) {
links[i].onclick = function() {
return showPic(this)?false:true;
}
}
}
平稳退化:当JavaScript功能被禁用,用户也可以实现基本功能。
JavaScript与HTML标记应该要分离。
添加事件处理函数。检查当前浏览器是否支持我们使用的函数。
结构化程序设计。函数应该只有一个入口和一个出口。但实际工作中,过分拘泥于这项原则往往会使代码变得难以阅读。如果函数有多个出口,我们应该把这些出口集中在开头部分。
网页加载完毕后再执行JavaScript函数
修改后的js为
window.onload = addLoadEvent(prepareGallery);
function addLoadEvent(func) {
var oldload = window.onload;
if(typeof window.onload != 'function') {
window.onload=func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function showPic(whichpic) {
if(!document.getElementById("placeholder")) return false;
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
if(placeholder.nodeName != "IMG") return false;
placeholder.setAttribute("src", source);
if(document.getElementById("description")) {
var text = whichpic.getAttribute("title")?whichpic.getAttribute("title"):"";
var description = document.getElementById("description");
if(description.firstChild.nodeType == 3) {
description.firstChild.nodeValue = text;
}
}
return true;
}
function prepareGallery() {
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
if(!document.getElementById("imagegallery")) return false;
var gallery = document.getElementById("imagegallery");
var links = gallery.getElementsByTagName("a");
for(var i=0; i<links.length; i++) {
links[i].onclick = function() {
return showPic(this)?false:true;
}
}
}
相关文章推荐
- JavaScript学习系列4 案例研究:图片库改进版
- JavaScript学习系列3 案例研究: JavaScript图片库
- Javascript DOM(第二版) 案例研究:图片库改进版
- Android进阶图片处理内存优化系列之图片墙案例
- UI基础-基础控件-0324-浏览图片案例与改进版(UILabel、UIButton、UIImageView的应用)
- 机器学习入门系列02-Regression 回归:案例研究
- JQuery插件:图片上传本地预览插件,改进案例一则。
- 3.3: 案例研究---某网站的超链接和图片提示效果
- 第六章 案例研究 图片库改进版
- JavaScript学习系列3 案例研究: JavaScript图片库
- jQuery(3完结)案例研究-某网站超链接和图片显示效果
- 【JavaScript DOM编程艺术】- 案例研究:图片库改进版
- 案例研究:图片库改进版(js dom编程艺术第六章笔记)
- JavaScript Dom编程艺术-C6 案例研究:图片库改进版
- 【PHP】【PHP100改进系列】上传图片水印、缩略图、图片大小预处理类
- 机器学习入门系列02,Regression 回归:案例研究
- 获取RTF格式字符串中的二进制图片字符串列表-RTF研究系列
- VS2010与.NET4系列 12. 添加引用对话框改进
- Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
- Spark RDD/Core 编程 API入门系列 之rdd案例(map、filter、flatMap、groupByKey、reduceByKey、join、cogroupy等)(四)