当前位置: 代码迷 >> Web前端 >> IE跟火狐的一些区别
  详细解决方案

IE跟火狐的一些区别

热度:116   发布时间:2012-09-19 13:43:53.0
IE和火狐的一些区别

1.??Iframe不显示问题

<iframe??? id="rightFrame" width="100%" height="80%" frameborder="0" style="overflow-y:hidden;overflow-x:hidden;"/>

在火狐中无法识别width="100%" height="80%"这种百分比,所以会显示不出来

解决方法:一:width="800px" height="800px" 写死在页面上

二:

<body>

<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">

?<tr >

?<td>

??????????? <td ?vAlign="top">

??????????????????? <iframe id="rightFrame" width="100%" height="100%" scrolling="no" frameborder="0" style="overflow-y:hidden;overflow-x:hidden"/>

??????????????? </td>

??????????? </tr>

?</table>

</body>

这样,在ie和火狐中都可兼容(注:table必须为body仅有的子元素,如果想在页面上加其它东西,可以在table里加)

2.?得到Iframe元素问题

iframe多层嵌套时,我们可以用id得到相应的iframe元素,比如

<iframe id=” rbp_content_iframe”><iframe id=” Content”></iframe></iframe>

ie中,可以用

???????? top.rbp_content_iframe.Content .location.reload() (top表示顶级元素)刷新iframe(Content);

在火狐中则要用

top.document.getElementById("rbp_content_iframe").contentWindow.getElementById("Content").contentWindow.location.reload();

两者兼容用

top.document.getElementById("rbp_content_iframe").contentWindow.document.getElementById("Content").contentWindow.document.location.reload();

3.??function$(obj){returndocument.getElementById(obj);}问题

通常我们要得到一个元素,就用document.getElementById(obj),但以前是使用上面的方式来简化得到的过程,这样再想得到一个元素,就用$(id)就可

但这种方式会用jquery的元素选择器起冲突,所以要把这种话删除,别把js文件中的$(id)全改成document.getElementById(id);这种形式,页面引用的其它js文件也可改才可以。

4.?parentElement问题

在火狐中不支持parentElement,要兼容,则要用parentNode

5.?lastChild问题

ie和火狐都可以用lastChild,但火狐中的lastChild判断比较严格,经常很多不是节点的元素比如文本甚至空格,都可能为lastChild,所以要想得到最后的文本,

???????? var last = labelObj.parentNode.parentNode.parentNode.lastChild;

????????????? if(last.nodeType!=1) last = last.previousSibling;

这样加个判断即可

6.?ActiveXObject问题

ActiveXObject只支持ie,当火狐用的时候就会报错,而以前用到的,都是var obj = new ActiveXObject("Scripting.Dictionary")这种形式,用来当作map对象存储东西,由于要兼容火狐,而javascript没有默认的map方法,现在我们使用一个用Array 写的map组件,路径为reportmis/mis2/gezComponent/js/jsMap.js,引入即可,该文件头的注释已经写明了该对象的使用方式,我们要用时

?????? var map = new Map();map.put(“ab”,2);

使用案例参照:数据管理中的数据别名管理reportmis\WebRoot\eds\js\aliasManager.jsreportmis\WebRoot\eds\dataTableManager\aliasManager.jsp

  相关解决方案