Javascript中的DOM详细解决方案
为了实现平滑降级、向后兼容性和标签分离,编写JS代码时首先要做的是必要的测试和检查。下面的代码被添加到js文件中检查:
在window.onload =函数(){
如果(!文件相对应)返回false;
如果(!文件。getElementById)返回false;
如果(!文件getelementsbyclassname)返回false;
如果(!document.getelementbyid(选择器))返回false;
如果(!document.getelementsbytagname(标签))返回false;
如果(!document.getelementsbyclassname(选择器))返回false;
};
通用封装功能:
函数(id){
返回document.getelementby ID(ID);
}
VaR AddEvent =功能(obj,事件,FN){ / /目标:元素对象的名称、事件:结合事件触发回调函数fn
如果(obj。addEventListener){
Obj.addEventListener(事件、FN、假);
}
else if(obj。attachevent){
obj.attachevent(+事件,FN);
}
}
对于需要页面加载运行的许多功能,这在window.onload封装方法如下:
分析师的功能(函数){
VaR在window.onload oldonload =;
如果在window.onload(typeof!=函数)
{
在window.onload =功能;
}
其他的
{
在window.onload =功能()
{
Oldonload();
Func();
}
}
}
分析师(首要功能便);
(secondfunction)分析师;
Firefox与IE之间的Javascript差异:
1,在大多数情况下,为事件处理函数返回false,从而防止默认事件行为。例如,默认情况下,点击一个元素将跳转到通过元素的href属性指定的页面。
返回的错误是等价的终结者,,还真是相当于execator。
js中返回使用的三个场景概述如下:
回真;返回处理结果的正确处理。
返回false;返回错误的处理惩罚;终止惩罚;阻止提交表单;阻碍默认操作的执行。
返回;将控制柄返回页面。
2。大多数情况下,将一个函数调用分配给变量是个好主意。
3,Noscript标签可用于浏览器可以识别的脚本标签但不支持脚本。如果浏览器支持的脚本,它不在noscript标记显示文本。
4、在动态设置样式时,尽可能长时间地选择CSS,最简单的就是选择最容易实现的方法。
5,在函数中,全局对象将被存储为局部变量以减少全局查找,因为访问局部变量比访问全局变量要快。
6,如果我们的目标是不断运行的代码,我们不应该使用setTimeout而setInterval,因为每次启动一个计时器setTimeout和setInterval,启动之初的定时器。
7,如果要连接多个字符串,应尽可能少使用+,条件分支三替代条件分支运算符。
8,很多人喜欢使用parseInt()。事实上,parseInt()是用于将字符串转换为数字代替浮点数和整数之间的转换。我们应该用math.floor()或Math.round()。
9,在Javascript中,所有变量都可以由一个var语句声明。这是一个合并的语句,以减少整个脚本的执行时间。
10。大型DOM的变化,使用innerHTML比使用标准的DOM方法来创建相同的DOM结构快得多。
11,当同一对象使用。Onclick引发的多种方法,后一种方法将覆盖以前的方法,也就是说,当onclick事件发生,只有最后一个绑定的方法将被执行的事件监听器,没有覆盖,每个绑定事件被执行。
12、如果你定义一个toString()进行类型转换的方法,建议显式调用toString(),因为内部操作后尝试所有的可能性,将对象的toString()方法尝试可以转化为字符串,所以直接调用这个方法会更有效。
13,因为elemet.style只能得到内联样式,和element.currentstyle.width是IE浏览器的特定属性(元素、空,getcomputedstyle)。Width是Firefox和Chrome浏览器的独特属性,所以为了获得内部和外部的风格兼容的方法如下(不可取的复合方式,如背景、边框、但应该是底色,带):
功能getstyle(obj,name){
如果(obj。currentstyle){
返回的对象。currentstyle {姓名};
}
其他的
{
返回getcomputedstyle(obj,null){姓名};
}
}
以上是本文的全部内容,希望大家能喜欢。