平稳退化(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
向后兼容
性能考虑