js在伊江和Firefox中的差异

js在伊江和Firefox中的差异
1.firefox不能支持InnerText。

Firefox支持innerHTML但不支持InnerText,支持文本内容实施innerText,但默认情况下,额外的空间保持默认。如果你不使用的内容,你可以使用innerHTML相反如果你不包含HTML代码里面的字符串。

2。禁止选择Web内容:

在伊江,JS对象。onselectstart =函数(){ return false通常使用;}

和Firefox使用CSS:-moz用户选择:无

三.过滤器支持(例如:透明过滤器):

ie:过滤器:alpha(不透明= 10);

火狐:-moz不透明度:10;

4。捕获的事件:

即:obj.setcapture()()(),obj.releasecapture

火狐:document.addeventlistener(MouseMove

Document.removeEventListener(MouseMove

5。获取鼠标位置

即:event.clientx,event.clienty

Firefox:需要通过事件函数传递事件对象

obj。移动鼠标=功能(EV){

x = y = ev.pagey ev.pagex;

}

对6.div和其他元素的边界问题:

例如,设置一个div css::{宽度:100px;身高:100px;边界:# 000000 1px solid;}

在IE中:DIV的宽度(包括边框的宽度):100px,DIV的高度(包括边框的宽度):100px;

和Firefox的宽度:div(包括边框的宽度):对102px高度,div(包括边框的宽度):102px;

所以,当你做IE和Firefox的拖动窗口时,你必须开动脑筋,JS和CSS,并给你两个提示

一个。判断浏览类型

无功议= document.all真的假的;

我写了一个变量,如果你支持document.all语法然后议= true,否则议= false

两。不同浏览器下的CSS处理

一般来说,您可以使用优先级来优先使用CSS语句(只有Firefox支持)。

例如:{边框宽度:0px!重要的;边框宽度:1px;}

在Firefox中,元素是无边界的,在IE的边框宽度1px

1.document.formname.item(项目名称)的问题

问题描述:在IE的领导下,你可以使用document.formname.item(项目名称)或document.formname.elements { { ElementName } };Firefox只能使用文档。formname。元素{ElementName}。

解决方案:文件统一使用。formname。元素{ElementName}。

2。设置类对象问题

问题描述:IE,您可以使用(或){ }获得对象集合;Firefox只能使用{ }获取对象集合。

解决方案:统一使用{ }获取对象集合。

三.自定义属性问题

问题描述:在IE的领导下,你可以通过有规律的属性的方式得到的自定义属性,或者你可以使用自定义属性的getAttribute()。在Firefox中,你只能使用getAttribute()获取自定义属性。

解决方案:统一访问自定义属性通过getAttribute()。

4.eval(idname )的问题

问题描述:在IE的领导下,你可以使用eval(idname )或getElementById(idname )获得的ID是idname HTML对象,和Firefox只能使用getElementById(idname )到Firefox的对象。

解决方案:getElementById(idname )是用来获取HTML对象ID idname。

同一个5的问题。变量名称作为HTML对象标识

问题描述:在IE下,HTML对象的ID可以直接用作文档的从属对象变量名,但不能在Firefox下使用。Firefox可以使用与HTML对象ID相同的变量名,但不能在IE.下使用。

解决方案:使用document.getelementbyid(idname )而不是document.idname.it最好不要以HTML对象ID相同的变量名,以减少误差;当变量被声明,var关键字添加到避免歧义。

6.const问题

问题描述:在Firefox下,您可以使用const关键字或var关键字来定义常量;在IE下,只能使用var关键字来定义常量。

解决方案:统一使用var关键字来定义常量。

7.input.type属性问题

问题描述:在IE的input.type属性是只读的;但input.type属性读写下的火狐。

解决方法:不要修改input.type财产。如果你要修改它,你可以隐藏原始输入,然后插入一个新的输入元件在同一位置。

8.window.event问题

问题描述:window.event只能运行在IE而不是运行在火狐浏览器,因为火狐的事件只能用在活动现场。

解决方法是添加事件参数对事件的功能,并利用VaR事件= evtevt:(窗口。eventwindow。事件:空)在函数体(假定参数是EVT)。

实例:

复制代码代码如下所示:
函数doSomething(EVT){

风险事件= evtevt:(窗口。eventwindow。事件:空)



}
9、事件x和事件y问题

问题描述:IE下,即使对象的x和y的属性,但没有pagex和pagey属性。甚至在Firefox和pagey pagex对象有属性,但没有X或X属性。

解决方案:VAR MYX =事件。X事件。X:event.pagex;var MYY =事件。Y Y:event.pagey事件;

如果考虑第八个问题,而不是使用事件事件。

10.event.srcelement问题

问题描述:IE下,即使对象srcelement属性,但没有目标属性;即使对象目标属性下的Firefox,但没有srcelement属性。

解决方案:使用srcobj = event.srcelement event.srcelement:event.target;

如果考虑第八个问题,而不是使用事件事件。

11.window.location.href问题

问题描述:IE或在Firefox2.0。X,你可以用window.location或window.location.href;下firefox1.5。X,你只能用window.location。

解决方案:用window.location.href.of课程window.location,你也可以考虑使用location.replace()方法。

12。模态和非模态窗口的问题

问题描述:IE下,模态和非模态窗口可以通过showModalDialog和showmodelessdialog Firefox不能打开。

解决方法:打开一个新窗口直接使用window.open(pageurl、名称、参数)。

如果你需要传递的参数在子窗口的父窗口后,您可以使用在子窗口中window.opener访问父窗口的父窗口。如果你需要控制子窗口,子窗口使用var = window.open(pageurl、名称、参数)去新开的窗口对象。

13.frame和iframe的问题

以下面的框架为例:
(1)访问框架对象

即:用window.frameid或window.framename访问此框架对象;

火狐:使用window.framename访问框架对象;

解决方案:对window.document.getelementbyid统一使用(frameid )访问框架对象;

(2)交换帧内容

在伊江和Firefox,你可以使用window.document.getelementbyid(frameid ),。src= xxx.html或window.framename.location = xxx.html切换帧的内容。

如果需要将框架中的参数返回到父窗口,则可以使用框架中的父关键字访问父窗口。

14.body装载问题

问题描述:Firefox的主体对象存在于浏览器完全读取主体标签之前,IE的主体对象必须在浏览器完全读取标签之后才存在。

{此问题尚未核实,经核实后予以修订。

{注}经过验证,有在IE6中没有这样的问题,opera9和Firefox2。简单js脚本可以访问在脚本之前加载的所有对象和元素,即使这个元素还没有加载。

15。事件委托方法

问题描述:在IE中,我们使用document.body.onload =注射,在注射()函数实现了在Firefox中,我们使用前;document.body.onload =注入()。

解决方案:文件使用。身体。onload =新功能('inject(统一));或(document.body.onload =功能){ / *这是代码*
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部