1. 判断是否支持一个js方法,用于兼容老的浏览器
//不包含括号 if(!document.getElementById){ return false; }
2. 结构化程序合计,一个函数只有一个入口和一个出口。但是为了美观,如果出口集中出现在函数的开头部分,就是可以支持的。
function foo(){ if(!document.getElementByTagName) return false;//return语句都放在前面 if(!document.getElementByNames) return false;
//函数具体执行部分 var obj = document.getElementByTagName("p"); }
3. 共享onload事件,如何加载多个函数(整理转自http://www.cnblogs.com/jhxk/articles/1660528.html)
function addLoadEvent(func) { var oldonload = window.onload;//得到上一个onload事件的函数 if (typeof window.onload != 'function') {//判断类型是否为'function',注意typeof返回的是字符串 window.onload = func; } else { window.onload = function() { oldonload();//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数 func();//调用当前事件函数 } } }
function t(){ alert("t") } function b(){ alert("b") } function c(){ alert("c") } addLoadEvent(t); addLoadEvent(b); addLoadEvent(c); //等价于 window.onload =function() { t(); b(); c() ;}
4. nodeName属性返回的字符串都是大写字母
//NodeName,nodeValue, nodeType的使用 if(placeholder.nodeName !=="IMG") return false;//nodeName返回大写字母 if(obj.firstChild.nodeType == 3) { obj.firstChild.nodeValue = "test"; }
5. 键盘事件onkeyPress。tab键也会引起onkeypress事件
obj.onkeypress = funtion(){ ... } //另外一种 obj.onkeypress = obj.onclick; //另外,tab键也会引起onkeypress事件
6. DOM Core和HTML-DOM.区别(个人感觉DOM-Core写起来更长):
document.getElementsByTagName("form");//HTML-DOM: document.forms;//DOM Core:
var src = obj.getAttribute("href");//DOM Core var src = obj.href;//html core