整理 IE和FF在对js支持的不同及解决方法( 二 )


FF:可以兼容document.all,但会生成一条警告 。
解决办法:可以用getElementById() 或者 getElementByTagName()来代替

15. input.type属性问题
IE:input.type属性为只读
FF:input.type属性为读写

16. window.location.href
IE:(FF2.0以下),可以使用window.location 或 window.location.href ; FF 1.5下只能使用window.location
解决办法:使用window.location 来代替 window.location.href

17. 模态和非模态窗口问题
IE:可以通过 showModalDialog 和 showModelessDialog 打开模态和非模态窗口
FF:不支持
解决办法:直接使用window.open(pageURL, name, parameters) 方式打开新窗口,如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口 。
如:var parWin = window.opener; parWin.document.getElementById(’title’).value = https://www.rkxy.com.cn/dnjc/’My Title’;

18. body
IE:body必须在body标签被浏览器完全读入后才存在
FF:body在body标签没有被浏览器完全读入之前就存在

19. 事件委托方法
IE:document.body.onload = init;
FF:document.body.onload = init();
解决办法:统一使用 document.body.onload = new Function(’init()’); 或者 docuement.body.onload = function(){/* 这里是代码 */}

20. 父元素的区别
IE:obj.parentElement;
FF :obj.parentNode
解决办法:因为FF与IE都支持DOM,所以可以都使用obj.parentNode

22.innerText在IE中能正常工作,但是innerText在FF中却不行. 需用textContent

23. FF中设置HTML标签的style时,所有位置性和字体尺寸的值必须后跟px 。这个IE也是支持的

24. 父节点、子节点和删除节点
IE:parentElement、parement.children,element.romoveNode(true) 。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node) 。

推荐阅读