`
zwh910621
  • 浏览: 146665 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Firefox不支持event解决方法

阅读更多

//火狐上的用调试的小问题。alert();的使用

alert();当里面没有参数时会在火狐中无法运行,IE可以。

alert('');有参数火狐才会执行,在火狐调试时要特别注意。

-----------------------------------------------------------------------------------------------------

 

1)event

 

event.srcElement从字面上可以看出来有以下关键字:事件,源他的意思就是:当前事件的源,

 

我们可以调用他的各种属性就像:document.getElementById(")这样的功能,

 

经常有人问firefox 下的event.srcElement 怎么用,在此详细说明:

 

IE,event对象有srcElement属性,但是没有target属性;Firefox,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即:

 

firefox 下的event.target = IE 下的event.srcElement

 

解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.

http://www.firefox.hk

 

IE 中可以直接使用event 对象,而FF 中则不可以,解决方法之一如下:

var theEvent = window.event || arguments.callee.caller.arguments[0];

 

第二种是将event 作为参数来传递:

function xxx(e){var theEvent = window.event || e;}

 

srcElement target

 

IE srcElement 表示产生事件的源,比如是哪个按钮触发的onclick 事件,FF 中则是target

 

var theEvent = window.event || arguments.callee.caller.arguments[0];

var srcElement = theEvent.srcElement;

if (!srcElement){

    srcElement = theEvent.target;

}

 

例子:

 

document.onclick = function(e){

    var theEvent = window.event || e;

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

}

 

function clickAction(){

    var theEvent = window.event || arguments.callee.caller.arguments[0];

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

    // do something;

}

 

function clickAction(e){

    var theEvent = window.event || e;

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

    // do something;

}

 

event.keyCode event.which

 

FF不支持window.event.keyCode,代替着是event.which

 

列子:

 

//在网页上面屏蔽tab键的代码

document.onkeydown = function (e){

    var theEvent = window.event || e;

    var code = theEvent.keyCode || theEvent.which;

    if(code == 9){

       return false;

    }

}

 

2)document.all

 

document.alliedom标准确立之前的一个得到元素的一个集合,根据idname,的一个元素大集合,后来DOM标准确定了,getElementById逐渐慢慢取代了all对象集的地位,但是firefox为了兼容一些为ie写的使用document.all的脚本,不得已,加入了document.all支持,但是也不支持if(document.all)判断,并且在有正确xhtmldoctype下会屏蔽使用document.all

 

3)event

 

window.event //IE

 

//FF

 

e = window.event || e

 

3)判断页面加载完成

 

IE: document.onreadystatechange=function(){document.readyState=="complete"}

 

FF: document.addEventListener("DOMContentLoaded",handle,false)

当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener

attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数;

addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带"on",比如"onsubmit"在这里应为"submit",第二个是需执行的函数,第三个参数为布尔值;

来源站长吧- http://www.master8.net/data/2007/0620/article_10074.htm

 

4)设置容器位置lefttop

 

IE:可以不用加单位px

FF:一定要加单位px

-------------------------------------------------------------------------------------------

//一种用来输入整数的方法。

IsInt:<input type="text" onkeyup="isInt(event);">

//是否整型

function isInt(e){

    //keyCode:IE支持,which:FF支持。

    var theEvent = window.event || e;

    var code = theEvent.keyCode || theEvent.which;

 

    if(code<48 || code>57){

       //alert(code);//srcElement:IE支持,target:FF支持

       var val = e.srcElement ? e.srcElement : e.target;

       val.value = val.value.substring(0,val.value.length-1);

    }

}

---------------------------------------------------------------------------------------------

// "||":也可以用来赋值,在FF中没有window.event,要对象赋对象。isInt(event);

function isInt(e){

    var oEvent = e || window.event//用来判断是IE或者FF,并赋值给对象。

    var oTarget = oEvent.target || oEvent.srcElement; //用来取IE或者FF的对象。

}

分享到:
评论

相关推荐

    Firefox不支持click方法的解决

    Firefox 不支持 click 方法的解决 Firefox 不支持 click 方法是因为 W3C 标准规定 click 方法只能赋予 input 元素。这意味着在 Firefox 浏览器中,不能使用 click 方法来触发非 input 元素的点击事件。 解决方法是...

    火狐浏览器不支持window.event的解决办法

    火狐浏览器不支持window.event的解决办法,解决不同浏览器针对window.event的差异

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    标题与描述均聚焦于“JavaScript在IE和Firefox(火狐)的不兼容问题解决”,这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox...

    让Firefox支持event对象实现代码

    然而,Firefox并不支持`window.event`,而是将事件对象作为事件处理函数的第一个参数传递。 为了在Firefox中获取事件对象,开发者通常需要像这样编写事件处理函数: ```javascript btn.onclick = handle_btn_click...

    js firefox支持问题

    本文将深入探讨这些差异,帮助开发者更好地理解和解决在Firefox和IE中常见的JavaScript支持问题。 #### 1. 表单元素访问方法 在JavaScript中访问表单元素有多种方法,但在不同的浏览器中,这些方法的表现并不一致...

    火狐下event的使用

    在Firefox和IE中,获取父元素的方法也有所不同: - **Firefox**: 使用`element.parentNode`。 - **IE**: 使用`element.parentElement`。 为了兼容这两种情况,可以使用以下代码: ```javascript var ...

    Mozzila Firefox与IE的兼容问题

    IE 支持 document.all,但是Firefox 不支持。解决方法是使用以下三个 tag 的其中一个来代替 document.all: * getElementsByTagName("tagName") 可以得到得到所有标签元素的集合 * getElementById("idName") 可以按...

    event兼容调用(IE,Firefox,Chrome)

    Firefox则不支持直接通过`window.event`来访问事件对象。在Firefox中,事件对象是作为事件处理函数的第一个参数传递进来的。因此,如果尝试在Firefox中访问`window.event`,将会得到`undefined`的结果。 为了在Fire...

    Firefox和IE兼容性问题及解决方法总结

    为了解决这个问题,我们可以创建一个getter和setter方法,如上文代码所示,模拟Firefox中的outerHTML功能。 2. **集合类对象访问** IE允许使用圆括号或方括号来访问集合类对象,例如`elements[0]`或`elements(0)`...

    兼容IE和Firefox获得keyBoardEvent对象

    window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。解决方法是if(typeof...

    Javascript的IE和Firefox(火狐)兼容性

    ### Javascript的IE与Firefox(火狐)兼容性解决方案 在Web开发过程中,浏览器兼容性问题一直是开发者们关注的重点之一。由于不同的浏览器对于Web标准的支持程度存在差异,这导致了同样的代码在不同浏览器中的表现...

    javascript在firefox与ie下的兼容性总结

    - 解决方法:在Firefox中,可以使用`event.pageX`替代`event.x`,但在IE中不支持。使用`event.clientX`作为通用解决方案,它在两者中都可用。如果需要精确的坐标,可以处理`event.clientX`和`event.pageY`的差异。 ...

    js在IE和fireFox的区别

    - **Firefox**:支持`event.pageX`和`event.pageY`。 - **统一解决方案**:可以考虑使用`event.clientX`和`event.clientY`,它们在两个浏览器中的行为一致。 #### 三、选择器与元素操作 1. **元素选择**: - **...

    Javascript在IE和FireFox中的兼容处理

    - IE支持`document.all`来获取所有元素,Firefox则不支持。应优先使用`document.getElementById`或`querySelector`等标准方法。 4. **input的type属性问题** - 不同浏览器对某些HTML5新类型的输入框支持不同,如`...

    firefox兼容性问题

    5. **使用polyfill**:如果代码依赖于特定的`event`属性或方法,可以查找并引入对应的polyfill库,以确保在不支持这些功能的老版本Firefox中也能正常运行。 在提供的压缩包文件中,`getEvent.js`可能是用来演示如何...

    ie 和 firefox 的javascript 兼容问题(网上下载的).doc

    - **Firefox环境下**,不支持 `window.event`,必须在事件处理函数中传递事件对象。 **解决方法:** 使用以下代码实现跨浏览器兼容: ```javascript function gotoSubmit8_2(evt) { evt = evt ? evt : (window....

    Javascript的IE和Firefox兼容性参考

    - IE浏览器提供了全局的`window.event`对象,用来获取当前事件的信息,但Firefox不支持。解决办法是在事件处理函数中传递事件对象,如`onclick="gotoSubmit(event)"`,然后在函数内部使用`evt = evt || (window....

    js在IE和Firefox不同之处

    - **Firefox**:在Firefox中,`window.event`不可用。取而代之的是,可以通过以下两种方式获取`event`对象: - 在HTML页面中直接传递`event`参数给事件处理函数。 - 使用`arguments.callee.caller.arguments[0]`来...

Global site tag (gtag.js) - Google Analytics