2、getElementsByName 和getElementsById 的区别
通常我们在获取页面内控件时有多种方法, 比如document.getElementsByName 和
document.getElementsById。如果您需要查找文档中的一个特定的元素,最有效的方法是
getElementById()。由于一个页面中的name 属性可能不唯一(如HTML 表单中的单选按钮通常具有相同的name 属性),而getElementsByName() 方法则返回带有指定名称的对象的集合(即数组)。
3、将网页的结构和内容与JavaScript 脚本的动作分离
网页的结构和内容由html 来做,而网页的样式则由CSS 来做,网页的行为让由JavaScript 来做。 分离JavaScript 代码其实很简单,JavaScript 代码并不要求事件必须在html 中处理,完全可以在外部
JavaScript 文件里将一个事件添加到html 文档中的某个元素上。
4、浏览器的兼容性问题
兼容性问题是由于多种浏览器同时存在而导致的。用户在使用不同浏览器访问一个相同的页面时,所看到的效果有时会有差异。这种
差异可能会比较小,甚至不会被用户注意到;也可能很大,极端情况下可能造成在某种浏览器下无法正常浏览。引起这些差异的问题统称为“浏览器兼容性问题”。我们所要做的是新老要通吃,尤其要注意老的,即向后兼容。比如:
(1)document.formName.item(”itemName”) 问题
问题说明:IE 下, 可以使用document.formName.item(”itemName”)或document.formName.elements
[\;
而火狐 下, 只能使用document.formName.elements[\。 解决途径:统一使用document.formName.elements[\。 (2)数组类对象问题
问题说明:IE 下,可以使用() 或[] 获取数组类对象;火狐 下,只能使用[ ]获取数组类对象。 解决途径:统一使用[] 获取集合类对象。
(3)window.location.href 问题
问题说明:使用IE 或者火狐2.0.x 以下版本,可以使用window.location或window.location.href;而火狐1.5.x以下版本,却只能使用window.location。
解决方法:只使用window.location 以避免版本兼容问题。当然也可以使用location.replace()方法。
(4)frame 和iframe 问题
访问frame 对象,IE:可以使用window.frameId 或者window.frameName 来访问frame对象; 火狐:只能使用window.frameName 来访问frame 对象;
解决方法:统一使用window.document.getElementById(”frameId”)来访问这个frame 对象。 (5)切换frame 内容
在IE 和火狐中都均使用window.document.getElementById(”frameId”).src=“example.html” 或
window.frameName.location=“example.html” 来更改frame 中的内容;
如果需要将frame 中的参数传回父窗口,可以在frame 中使用parent关键字来访问父窗口。
(6)innerText 的问题.
问题说明:innerText 在IE 中可以正常工作,但是innerText 在火狐中却不起效果。 解决方法:在非IE 浏览器中可以使用textContent 代替innerText。
innerHTML 能够同时被ie、火狐等浏览器支持,而outerHTML 却只能被ie支持,最好不用。
5、性能考虑
如何保证脚本执行的性能是最优的呢? 我们可以尽量做到以下几点。 尽可能少访问dom、少使用标记、少用循环遍历;
合并脚本代码(js代码),减少页面在加载时所发送的请求数量;
将
5vd24776wy2i4cx3q5al1oirv327wf00pn5
单篇付费下载
付费后即可下载这篇文章
限时特价:10元/篇 原价:20元
请选择支付方式