js在IE和Firefox不同之处

上传人:夏** 文档编号:458003386 上传时间:2022-12-27 格式:DOCX 页数:7 大小:22.75KB
返回 下载 相关 举报
js在IE和Firefox不同之处_第1页
第1页 / 共7页
js在IE和Firefox不同之处_第2页
第2页 / 共7页
js在IE和Firefox不同之处_第3页
第3页 / 共7页
js在IE和Firefox不同之处_第4页
第4页 / 共7页
js在IE和Firefox不同之处_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《js在IE和Firefox不同之处》由会员分享,可在线阅读,更多相关《js在IE和Firefox不同之处(7页珍藏版)》请在金锄头文库上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页js在IE和Firefox不同之处做Web类项目,不可避免的要涉及浏览器的兼容性问题,特别是javascript的兼容性问题,典型代表就是IE浏览器和FireFox浏览器,了解到不同之处就可以避免出现使用不同浏览器时可能会出现的兼容性问题,找了一些关于js在IE和FireFox中区别的资料,以供参考。:88884 m- P1 P; w4 Z* m* M; I- Y3 ( e& G* r) P/ 5 A1 L: :88881. document.form.item 问题9 Q3 A9 F1 o8 Q+ / m5 q问

2、题:信息平台( w$ ; ! H% d- m! K* K现有代码中存在许多 document.formName.item(itemName) 这样的语句,不能在Firefox下运行7 0 R6 s$ 3 x7 J* b+ J0 _解决方法:3 E7 H1 I x1 R, o5 i统一使用 document.formName.elementselementName/ r 9 o; p7 s# u& O1 ) % d$ k8 M2. 集合类对象问题 p, W h; q0 f0 C2 t9 Z:8888问题:* o! W- c+ 3 H I3 |# y* a0 N7 . OIE下,可以使用()或获取

3、集合类对象;Firefox下,只能使用获取集合类对象 ; o! ? v$ W) n; j解决方法:9 # S/ ( X1 N: A+ v7 k改用 作为下标运算。如:document.forms(formName) 改为 document.formsformName O. P$ % o; h/ X3 v又如:document.getElementsByName(inputName)(1) 改为 document.getElementsByName(inputName)10 m5 V8 F: f9 y o8 a 7 v& H$ O+ v: , W o3 $ m0 K3. event) o a(

4、F1 k n Z# w# 获取event问题:4 P C: r9 v) L s& v! Uwindow.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。& c & p( i4 s2 p1 d信息平台解决方法:6 4 p* w+ P. I6 F, ?3 在IE中,不能把Event对象作为参数传递给事件处理程序,只能用window.event或者event来引用Event对象。- r# m2 c# J5 I- B( RFirefox中获取event的方法:信息平台+ V( % * O F* 9 U) V(1) 从HTML页面传递

5、参数event (2) event = arguments.callee.caller.arguments0;, I s- 4 e4 |5 o* Q; G yfunction getEvent(evt) evt=evt?evt:(window.event?window.event:null); $ - 5 B H& z Qevent属性问题:! C8 i, x0 V( 5 Z1 fIE下,event对象有x,y属性,但是没有pageX,pageY属性;Firefox下,event对象有pageX,pageY属性,但是没有x,y属性。* Y3 c5 p5 x) C5 q- 6 Z, J6 EFi

6、refox中的event.pageX相当于IE中的event.x1 D* e6 G: 7 ?解决方法:event.x = event.x ? event.x : event.pageX;3 P7 & f8 _3 D, k, Y4 4 W8 t8 Y其它:# C2 K2 V( B6 H event.layerX 在IE与火狐中都有,具体意义有无差别尚未试验。2 q; % W4 n4 3 t/ k, r d1 / S; y0 p4. HTML 对象的 id 作为对象名的问题 % k0 h, u5 c; m* t9 U问题:! v8 N+ c/ P* & c- X在IE中,HTML对象的ID可以作为

7、document的下属对象变量名直接使用,而在Firefox中不能。* h5 B+ o( M4 . 9 Z1 m解决方法:1 U# X K/ ! o T& M9 B5 J统一用 getElementById(idName) 代替 idName 作为对象变量使用。 q& j0 e) d& O! W, d x/ H! b, y/ 5. 用idName字符串取得对象的问题:8888) U% L C2 m: W0 C- p3 _) p问题:0 B5 O) I$ ?$ M3 C- E m w1 :8888在IE中,利用eval(idName)可以取得id为idName的HTML对象,而在Firefox中

8、不能。8 q% a% x, E5 / & E/ h8 s$ Y解决方法:* R! D |8 d, q7 ( M统一使用 getElementById(idName) 代替 eval(idName)信息平台 E z+ t2 j9 , T) P# a/ Z, J! d$ s* F1 N* R4 O9 P6. 变量名与某 HTML 对象 id 相同的问题) p- b N, Q! _+ E$ r4 j问题:5 D, y5 h2 ! F+ x) m- s: SIE中HTML对象的ID可以作为document的下属对象变量名直接使用;而Firefox则不能。在Firefox中,使用与HTML对象ID相同的

9、变量名;IE下则不能。; - T6 i- o5 L信息平台解决方法:6 c& v& 0 F( D8 N( : A统一使用使用document.getElementById(idName)代替document.idName1 y: A |8 7 y% X# a在声明变量时,一律加上 var ,以避免歧义。:8888 L) L: M, V: |7 W& 此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。: ?/ t6 L; i5 C4 V2 x) _% |; 8 b. v% d0 Z% w8. frame问题, l9 Y. Z5 Q7 w) c问题:! b1 |$ o& u% K

10、; c# n( z n在 IE中 可以用window.testFrame取得该frame,而Firefox中不行信息平台# p3 E) O% q& U* p解决方法:% # S9 _% s/ j! 在frame的使用方面火狐和ie的最主要的区别是:) F; s; w1 ; ?2 :8888/ c 1 Q( q. KIE可以通过id或者name访问这个frame对应的window对象& k* Y* p: x o. r而Firefox只可以通过name来访问这个frame对应的window对象/ C5 q/ w w. I. H+ K: s如果上述frame标签写在最上层的window里面的htm里

11、面,那么可以这样访问% : e 0 p9 k, K:8888IE:window.top.frameId或者window.top.frameName来访问这个window对象% f$ U9 d: % d) e3 i信息平台Firefox:只能这样window.top.frameName来访问这个window对象* n7 G k$ K* 6 W6 f2 |! N3 I/ ?信息平台另外,在火狐和IE中都可以使用window.top.document.getElementById(frameId)来访问frame标签+ 7 7 H% m, a; z并且可以通过window.top.document.

12、getElementById(testFrame).src = xx.htm来切换frame的内容信息平台$ c F, m& I4 也都可以通过window.top.frameName.location = xx.htm来切换frame的内容6 J- 6 0 / / r信息平台0 M O. c5 s, o Y# z F Q9. 在Firefox中,自己定义的属性必须getAttribute()取得1 v0 C7 l* R! Mif(document.all) /IE下为dlg对象添加事件9 S/ O) i: # s+ n$ D% X Z: T dlg.setAttribute(onmoused

13、own, function() move_Div(this); ); Q, # h. w3 n+ e X4 _& o8 4 r2 k else /Firefox下为dlg对象添加事件:88886 N6 Y! t* * ? f* h% ; z/ O dlg.setAttribute(onmousedown, move_Div(this););0 u0 U4 x! _* u 2 Y6 2 q7 H) J10.在Firefox中没有 parentElement children 而用 parentNode childNodes4 b$ _3 y; V6 childNodes的下标的含义在IE和Fir

14、efox中不同,Firefox使用DOM规范,childNodes中会插入空白文本节点 - firefox下childNodes会把换行和空白字符都算作父节点的子节点,而ie的childNodes和children不会。, w+ _$ | j* Y7 k V一般可以通过node.getElementsByTagName()来回避这个问题。8 z+ U6 o( R2 ?4 N& o7 k8 v当html中节点缺失时,IE和Firefox对parentNode的解释不同,例如6 l) a# & S0 ; o5 Q0 i6 T+ l# i4 N. % _ 0 v; * T5 G# + c j) h # U) _9 m; S( Z) y 0 N( w) V2 3 信息平台6 S6 z6 u+ l7 j5 u p信息平台Firefox中input.parentNode的值为form, 而IE中input.parentNode的值为空节点5 t5 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号