WEB开发网
开发学院软件教学网络软件 ie与火狐中常见的兼容问题 阅读

ie与火狐中常见的兼容问题

 2012-12-06 14:45:55 来源:WEB开发网   
核心提示:(3)其它event.layerX 在IE与火狐中都有,具体意义有无差别尚未试验,ie与火狐中常见的兼容问题(2),8. 关于frame(1)现有问题在 IE中 可以用window.testFrame取得该frame,火狐中不行(2)解决方法在frame的使用方面火狐和ie的最主要的区别是:如果在frame标签中书写了

(3)其它

event.layerX 在IE与火狐中都有,具体意义有无差别尚未试验。

8. 关于frame

(1)现有问题

在 IE中 可以用window.testFrame取得该frame,火狐中不行

(2)解决方法

在frame的使用方面火狐和ie的最主要的区别是:

如果在frame标签中书写了以下属性:

<frame src="xx.htm" id="frameId" name="frameName" />

那么ie可以通过id或者name访问这个frame对应的window对象 而火狐只可以通过name来访问这个frame对应的window对象 例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问 ie: window.top.frameId或者window.top.frameName来访问这个window对象

火狐:只能这样window.top.frameName来访问这个window对象

另外,在火狐和ie中都可以使用 window.top.document.getElementById("frameId")来访问frame标签 并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容 也都可以通过window.top.frameName.location ='xx.htm'来切换frame的内容 关于frame和window的描述可以参见bbs的‘window与frame’文章 以及/test/js/test_frame/目录下面的测试

9. 在火狐中,自己定义的属性必须getAttribute()取得

10.在火狐中没有 parentElement parement.children 而用

parentNode parentNode.childNodes childNodes的下标的含义在IE和火狐中不同,火狐使用DOM规范,childNodes中会插入空白文本节点。

一般可以通过node.getElementsByTagName()来回避这个问题。

当html中节点缺失时,IE和火狐对parentNode的解释不同,例如

<form>
<table>
<input/>
</table>
</form>
火狐中input.parentNode的值为form, 而IE中input.parentNode的值为空节点

火狐中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)

11.const 问题

(1)现有问题:

在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。

(2)解决方法:

不使用 const ,以 var 代替。

12. body 对象

火狐的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在

13. url encoding

在js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx'; frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器 一般会服务器报错参数没有找到 当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为& 一般火狐无法识别js中的&

14. nodeName 和 tagName 问题

(1)现有问题:

在火狐中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象 有问题(具体情况没有测试,但我的IE已经死了好几次)。

(2)解决方法:

使用 tagName,但应检测其是否为空。

15. 元素属性

IE下 input.type属性为只读,但是火狐下可以修改

16. document.getElementsByName() 和 document.all[name] 的问题

(1)现有问题:

在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。

17.最简单的鼠标移过手变型的css要改了

cursor:pointer;/*ff不支持cursor:hand*/ dw8下面自动出来的也没有hand这个属性了,标准的是pointer

18.ff不支持滤镜 最常见的半透明不支持。

filter: Alpha(Opacity=50); /* for IE */

上一页  1 2 3 4  下一页

Tags:ie 火狐 常见

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接