好文档 - 专业文书写作范文服务资料分享网站

JavaScript的运用提高

天下 分享 时间: 加入收藏 我要投稿 点赞

JavaScript的运用与提高

1、如何在js被禁用的情况下要保证网页仍能实现它的核心功能

具体的js实现有以下几个方案:

方案一:可以使用javascript 伪协议:

false;\

方案二:使用内嵌的事件处理函数:

当我们采用以上两种方案,在js被禁用时,“在一个新窗口里打开链接”这个功能就无法实现了。所以,我们不能为了使用js而滥用js。

以下方案就为js预留出了退路,即所谓的平稳退化(留好js被禁后的退路) 方案三:平稳退化:

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