龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

解决JS在firefox和IE下差异问题(1)(3)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
13.frame问题 以下面的frame为例: framesrc framesrc =xxx.html id =frameId name = frameName / (1)访问frame对象: IE:使用window.frameId或者window.frameName来访问这个frame对象. Fire

13.frame问题

以下面的frame为例: 

  1. <framesrcframesrc="xxx.html"id="frameId"name="frameName"/> 
  2.  

(1)访问frame对象:

IE:使用window.frameId或者window.frameName来访问这个frame对象.
Firefox:只能使用window.frameName来访问这个frame对象.
另外,在IE和Firefox中都可以使用window.document.getElementById(frameId)来访问这个frame对象.

(2)切换frame内容:

在IE和Firefox中都可以使用window.document.getElementById(testFrame).src=xxx.html或window.frameName.location=xxx.html来切换frame的内容.
如果需要将frame中的参数传回父窗口,可以在frme中使用parent来访问父窗口。例如:parent.document.form1.filename.value=Aqing;

14.body问题

Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在.
Firefox: 

  1. <body> 
  2. <scripttypescripttype="text/javascript"> 
  3. document.body.onclick=function(evt){  
  4. evtevt=evt||window.event;  
  5. alert(evt);  
  6. }  
  7. </script> 
  8. </body> 
  9. IE&Firefox:  
  10. <body> 
  11. </body> 
  12. <scripttypescripttype="text/javascript"> 
  13. document.body.onclick=function(evt){  
  14. evtevt=evt||window.event;  
  15. alert(evt);  
  16. }</script> 

15.事件委托方法

IE:document.body.onload=inject;//Functioninject()在这之前已被实现
Firefox:document.body.onload=inject();
有人说标准是:
document.body.onload=newFunction('inject()');

16.firefox与IE(parentElement)的父元素的区别

IE:obj.parentElement
firefox:obj.parentNode
解决方法:因为firefox与IE都支持DOM,因此使用obj.parentNode是不错选择.

精彩图集

赞助商链接