IE跟火狐的一些区别

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