IE_Firefox兼容性问题.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IE_Firefox兼容性问题

IE Firefox 兼容性问题 1. 对象问题 1.1 Form对象 现有问题: 现有代码这获得form对象通过document.forms(formName),这样使用在IE 能接受,MF 不能。 解决方法: 改用作为下标运算。改为document.forms[formName] 备注 上述的改用作为下标运算中的formName是id而name 1.2 HTML对象 现有问题: 在IE 中,HTML 对象的ID 可以作为document 的下属对象变量名直接使用。在MF 中不能。 document.all(itemName)或者document.all(itemId) 解决方法: 使用对象ID作为对象变量名 document.getElementById(itemId) 备注 document.all是IE自定义的方法,所以请大家尽量不使用。 还有一种方式,在IE和MF都可以使用 var f = document.forms[formName ]; var o = f. itemId; 1.3 DIV对象 现有问题: 在IE 中,DIV对象可以使用ID作为对象变量名直接使用。在MF 中不能。 DivId.style.display = none 解决方法: document.getElementById(DivId).style.display = none 备注 获??对象的方法不管是不是DIV对象,都使用getElementById方法。参见.2 1.4 关于frame 现有问题 在IE中可以用window.testFrame取得该frame,mf中不行 解决方法 在frame的使用方面MF和IE的最主要的区别是: 如果在frame标签中书写了以下属性: 那么IE可以通过id或者name访问这个frame对应的window对象 而mf只可以通过name来访问这个frame对应的window对象 例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问 IE:window.top.frameId或者window.top.frameName来访问这个window对象 MF:只能这样window.top.frameName来访问这个window对象 另外,在mf和ie中都可以使用window.top.document.getElementById(frameId)来访问frame标签 并且可以通过window.top.document.getElementById(testFrame).src = xx.htm来切换frame的内容 也都可以通过window.top.frameName.location = xx.htm来切换frame的内容 1.5 窗口 现有问题 IE中可以通过showModalDialog和showModelessDialog打开模态和非模态窗口,但是MF不支持。 解决办法 直接使用window.open(pageURL,name,parameters)方式打开新窗口。 如果需要传递参数,可以使用frame或者iframe。 2. 总结 2.1 在JS中定义各种对象变量名时,尽量使用id,避免使用name。 在IE 中,HTML 对象的ID 可以作为document 的下属对象变量名直接使用。在MF 中不能,所以在平常使用时请尽量使用id,避免只使用name,而不使用id。 2.2 变量名与某HTML 对象id 相同的问题 现有问题 在MF 中,因为对象id 不作为HTML 对象的名称,所以可以使用与HTML 对象id 相同的变量名,IE 中不能。 解决方法 在声明变量时,一律加上var ,以避免歧义,这样在IE 中亦可正常运行。 此外,最好不要取与HTML 对象id 相同的变量名,以减少错误。 1. document.all Firefox可以兼容document.all,但会生成一条警告。可以用getElementById(*) 或者getElementByTagName(*)来代替 不过对于document.all.length等属性,则完全不兼容。 2. parentElement 这个也不兼容。比方说,obj.parentElement.name 则应改成obj.parentNode.attributes.getNamedItem(name).nodeValue (不知道如何写得更简洁些) 3. event W3C不支持windows.event 比方说: 在IE里面 div class=menu id=menu onclick=onMenuClick(); /div function onMenuC

文档评论(0)

zw4044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档