firefox和ie的浏览器脚本兼容问题,ie兼容代码

  firefox和ie的浏览器脚本兼容问题,ie兼容代码

  以下IE浏览器换成IE,Mozzila Firefox换成MF。

  1.document.form.item问题

  (1)存在的问题:

  现有代码中有很多document . formname . item( itemname )等语句,无法在MF下运行。

  (2)解决方案:

  请改用document . formname . elements[ element name ]。

  (3)其他

  见2

  2.集合类对象的问题

  (1)存在的问题:

  现有代码中很多集合类对象使用(),IE可以接受,MF不行。

  (2)解决方案:

  请改用[]作为下标操作。例如,document.forms(formName )更改为document.forms[formName]。

  再比如:文档。GetElementsbyname( input name )(1)已更改为Document。GetElementsbyname(输入名称)[1]

  (3)其他

  3.窗口.事件

  (1)存在的问题:

  Window.event不能在MF上运行。

  (2)解决方案:

  MF的事件只能在事件现场使用,这个问题暂时解决不了。您可以解决这个问题:

  原始代码(可以在IE中运行):

  type= button name= some button value= submit /

  .

  脚本语言=javascript

  函数gotoSubmit() {

  .

  警报(window . event);//使用window.event

  .

  }

  /脚本

  新代码(可以在IE和MF中运行):

  type= button name= some button value= submit /

  .

  脚本语言=javascript

  函数gotoSubmit(evt) {

  evt=evt?evt : (window.event?window . event:null);

  .

  alert(evt);//使用evt

  .

  }

  /脚本

  另外,如果新代码中第一行不变,和旧代码一样(即gotoSubmit调用不给出参数),仍然只在IE中运行,但不会出现错误。所以这个方案的tpl部分还是兼容旧码的。

  4.HTML对象的id作为对象名的问题

  (1)存在的问题

  在IE中,HTML对象的ID可以直接作为document的从属对象的变量名。不在MF。

  (2)解决方案

  GetElementById(idName )用作对象变量,而不是idName。

  5.获取带有idName字符串的对象的问题

  (1)存在的问题

  在IE中使用eval(idName)可以得到带有idName的HTML对象,但在MF中不行。

  (2)解决方案

  GetElementById(idName)而不是eval(idName)。

  6.变量名与HTML对象id相同。

  (1)存在的问题

  在MF中,因为对象id不用作HTML对象的名称,所以可以使用与HTML对象id相同的变量名,但在IE中不行。

  (2)解决方案

  在声明变量的时候,所有的变量都加了var,避免歧义,这样就可以在IE中正常运行了。

  此外,最好不要使用与HTML对象id相同的变量名,以减少错误。

  (3)其他

  见问题4。

  7.event.x和event.y问题

  (1)存在的问题

  在IE中,事件对象有x,y属性,而在MF中没有。

  (2)解决方案

  在MF中,event.x的对等词是event.pageX,但它不在event.pageie中。

  因此,使用event.clientX而不是event.x.IE里面也有这个变量。

  Event.clientX与event.pageX(当整个页面都有滚动条时)略有不同,但大多数时候是等价的。

  如果完全一样,那就有点麻烦了:

  mX=event.x?event . x:event . pagex;

  然后用mX替换event.x。

  (3)其他

  Event.layerX在IE和MF中都有,具体含义是否不同尚未考证。

  8.关于框架

  (1)存在的问题

  可以使用window.testFrame在IE中获取帧,但在mf中不行。

  (2)解决方案

  mf和ie在框架使用上的主要区别是:

  如果框架标签中写入了以下属性:

  frame src= xx . htm id= frameId name= frameName /

  Ie可以通过id或名称访问这个框架对应的窗口对象。

  Mf只能通过名字访问这个框架对应的窗口对象。

  例如,如果上面的frame标记是在顶层窗口的htm中编写的,您可以像这样访问它。

  Ie: window.top.frameId或window.top.frameName来访问这个窗口对象。

  Mf:这是访问这个窗口对象的唯一方法

  此外,window . top . document . getelementbyid( framed )可用于访问mf和ie中的frame标记。

  并且可以通过window . top . document . getelementbyid( test frame )切换框架的内容。src= xx.htm

  也可以通过window . top . frame name . location= xx . htm 切换框架的内容

  框架和窗口的描述可以在bbs的‘窗口和框架’文章中找到。

  和/test/js/test_frame/目录下的测试。

  -由adun于2004年12月9日修改。

  9.在mf中,自定义属性必须通过getAttribute()获得

  10.mf中没有parentlement.children,但使用了它。

  parent node parent node . child nodes

  子节点的下标在IE和MF中有不同的含义。MF使用DOM规范,在childNodes中会插入一个空白的文本节点。

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

  当html中缺少一个节点时,IE和MF对parentNode有不同的解释,比如

  形式

  桌子

  输入/

  /表格

  /表单

  MF中input.parentNode的值是form,IE中input.parentNode的值是空节点。

  MF中的节点没有removeNode方法,因此必须使用以下方法node . parent node . remove child(node)。

  11 .常数问题

  (1)存在的问题:

  在IE中不能使用Const关键字。例如const constVar=32这是IE中的一个语法错误。

  (2)解决方案:

  不用const,用var代替。

  12.身体物体

  MF的body在body标签被浏览器完全读入之前就已经存在,而IE必须在body被完全读入之后才存在。

  13.url编码

  在js中,如果写url,就直接写,不用amp例如var url=xx.jsp?objectName=xx ampobject event=XXX ;

  Frm.action=url那么很有可能是url显示不正确,导致参数没有正确传输到服务器。

  通用服务器报告找不到错误参数。

  当然如果是在tpl中,要求写成amp,因为tpl符合xml规范。

  一般MF无法识别js中的amp

  14.节点名和标记名问题

  (1)存在的问题:

  在MF中,所有节点都有nodeName值,但textNode没有tagName值。在IE中,nodeName的使用似乎是

  有问题(具体情况没测试过,但是我IE死过几次)。

  (2)解决方案:

  使用tagName,但您应该检查它是否为空。

  15.元素属性

  lower input.type属性是只读的,但可以在MF下修改。

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

  (1)存在的问题:

  在IE中,getElementsByName()和document.all[name]不能用于获取div元素(是否有其他元素不能取,未知)。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • showmodaldialog 返回值,,showModalDialog模态对话框的使用详解以及浏览器兼容
  • 炒股最好的五款浏览器排行,推荐个好的浏览器
  • edge浏览器特点,windows10 edge浏览器
  • 360手机助手下载官网下载安装到手机助手,360手机助手电脑版本
  • 积米浏览器怎么下载安装插件,积米浏览器怎么下载安装程序
  • 猎豹浏览器自动刷新网页的设置方法是,猎豹浏览器自动刷新网页的设置方法在哪
  • 360免费升级正版win10,360win10系统升级
  • 登录edge浏览器,windows浏览器edge
  • 火狐浏览器崩溃如何修复,火狐浏览器崩溃无法打开
  • chrome如何恢复页面,谷歌浏览器如何恢复
  • 谷歌浏览器按f12无效,谷歌浏览器f12控制台报错
  • chrome浏览器ie内核,谷歌浏览器 内核
  • uc浏览器无法在线观看视频,uc浏览器看不了视频是怎么回事
  • 谷歌浏览器是hao123,怎么恢复到谷歌浏览器,如何删除hao123浏览器
  • windows11无法打开网页,windows11浏览器无法上网
  • 留言与评论(共有 条评论)
       
    验证码: