`
talentluke
  • 浏览: 600835 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于javaScript的IE与FireFox兼容性

阅读更多

firefox没有window.event对象,其实这个本来不会带来很大麻烦,但是,看过下面的例子,就知道其引发的问题之麻烦了.

        假设,现在我要监视一个鼠标按键动作,在浏览器任何地方都监视,可以这样写:

        document.onmousedown=action;

        action是我自定义的一个事件处理函数,我希望在函数中输出我按键的坐标,于是我的action函数就可以这样写

        function action(event){

            //获取页面上用来显示坐标的两个文本输入框

            var x = document.getElementsByTagName_r("input")[0];

            var y = document.getElementsByTagName_r("input")[1];

            //event.pageX是fireFox的用法,event.x是IE的用法

            x.value = event.pageX || event.x ;

            y.value = event.pageY || event.y ;

        }

       这样,就完成了似乎兼容两种浏览器的一段javaScript, 但, 事实上, 还是不兼容!!!!!!!fireFox可以正常运行上面的代码,但IE就会报错!!

        不兼容的地方,就在那个参数(event)!!!!!!在IE上,如此显式声名event参数,浏览器是不会认为这个event参数是window.event,而认为是另一个不知明的对象参数.于是,就会报错: event.x或者event.pageX都找不到~~~!!!!

        怎么办?我们只要不把event显示声名为参数,在函数内直接调用event,就可以了.因为event是window的child,可以省略window前缀,浏览器自动会识别出是window.event了.也就是说,函数头变成这样:    function action()

        哈哈,在IE上终于可以正常运行了!!!!!!!!!问题解决了........才怪!!!!

        在firefox上再次运行,又变不行了!!!!!为啥???? 就是因为firefox上面没有window.event这回事,在函数内直接用event或者window.event都是不行的!!!!!只有声名一个event参数,才会在运行时捕捉这个event!!!!!

        回归测试,就是这么回事了!!!

        不过既然知道了是这个原因,问题就好解决了(我当时可是怎么都没想出是啥原因啊~~~~直到今天灵机一动,来个顿悟!!!)我们只要加上些代码,就ok了:

        function action(event){

            //先判断一下,是IE还是Firefox

            var ev;

            if(window.event){ ev = window.event; }

            else{ ev = event; } 

            var x = document.getElementsByTagName_r("input")[0]; 

            var y = document.getElementsByTagName_r("input")[1];

            x.value = ev.pageX || ev.x ;

            y.value = ev.pageY || ev.y ;

        }

分享到:
评论

相关推荐

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

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

    Javascript的IE和Firefox兼容性参考

    以下是一些常见的JavaScript在IE和Firefox中的兼容性问题及解决方案: 1. **document.form.item问题** - 在IE中,可以通过`document.formName.item("itemName")`来访问表单元素,但在Firefox中不支持。推荐使用...

    Javascript的IE和Firefox兼容性问题集合

    然而,由于不同的浏览器对JavaScript的支持程度和实现方式存在差异,尤其是Internet Explorer(IE)和Firefox这两款流行浏览器,开发者经常需要面对兼容性问题。以下是一些常见的JavaScript在IE和Firefox上的兼容性...

    javascript在IE和Firefox中兼容性问题

    本篇将主要探讨JavaScript在Internet Explorer (IE) 和Firefox之间的兼容性挑战,并通过给出的文件名列表解析这些测试用例所涉及的知识点。 1. **createDocument测试.html** 在IE和Firefox中,创建XML文档的方法...

    IE FIREFOX兼容性测试

    本文将深入探讨“IE FIREFOX兼容性测试”这一主题,旨在帮助开发者更好地理解和解决不同浏览器间存在的兼容性问题。 首先,我们来理解标题“IE FIREFOX兼容性测试”的含义。这指的是针对Internet Explorer(IE)和...

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

    JavaScript在Firefox和IE之间的兼容性问题一直是前端开发者面临的一大挑战。由于这两个浏览器内核的不同,导致在处理某些JavaScript特性时存在差异。以下是一些常见的兼容性问题及其解决方案: 1. **Document.form....

    Javascript的IE和Firefox兼容性汇编 .txt

    ### JavaScript的IE与Firefox兼容性问题详解 #### 引言 在Web开发中,确保脚本能在不同浏览器间正常运行是非常重要的。特别是对于早期版本的Internet Explorer (IE) 和 Firefox (MF),由于它们对JavaScript的支持...

    Javascript的IE和Firefox兼容性.doc

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它在不同的浏览器中可能存在兼容性问题,尤其是Internet Explorer(IE)和Firefox。这些差异主要源于不同浏览器对JavaScript标准的实现不一致。以下是一些常见...

    DOM文档和Javascript的IE和Firefox兼容性

    "Javascript的IE和Firefox兼容性"则涉及到JavaScript在不同浏览器中的行为一致性问题。Internet Explorer(IE)和Mozilla Firefox是两个历史悠久且具有广泛用户基础的浏览器,它们对JavaScript的支持存在差异,尤其...

    javascript的IE和Firefox兼容性汇编

    ### JavaScript的IE与Firefox兼容性解决方案 #### 一、`document.form.item` 问题 - **现有问题**:代码中存在大量使用 `document.formName.item("itemName")` 的语句,这种写法在 Mozilla Firefox(简称MF)...

    ie与firefox兼容文档

    5. **JavaScript兼容性**:IE与Firefox对JavaScript API的实现也有所不同。例如,IE的`document.all`属性在Firefox中不存在,而Firefox的`window.getSelection()`在旧版IE中可能无效。 为了解决这些问题,开发者...

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

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

    让IE和火狐同时兼容

    特别是在早期的Web时代,Internet Explorer(简称IE)与Mozilla Firefox(简称火狐)这两款浏览器之间存在着显著的差异,这使得页面设计师不得不花费大量时间去解决它们之间的兼容性问题。本文将详细介绍如何使网站...

    IE6、_IE7、IE8、Firefox兼容性问题

    在网页开发中,兼容性问题是一个常见且棘手的问题,尤其是涉及到老版本的Internet Explorer(IE6、IE7、IE8)和Firefox等其他浏览器。这些浏览器对于CSS(层叠样式表)的解析方式存在差异,导致在不同浏览器中页面...

    IE和Firefox对JavaScript的兼容

    总的来说,理解和处理IE与Firefox之间的JavaScript兼容性问题对于Web开发者至关重要。通过学习“IE火狐的JavaScript兼容.doc”文档,开发者可以更好地理解这些差异,并采取适当的措施确保代码在各种浏览器上的正常...

    JS的IE和Firefox兼容性

    JavaScript在不同浏览器之间的兼容性问题一直是开发者面临的重要挑战,尤其是早期的Internet Explorer(IE)和Mozilla Firefox(MF)之间存在显著差异。以下是一些关键的兼容性问题及其解决方案: 1. **document....

    IE、火狐兼容性问题

    本文主要探讨的是IE(Internet Explorer)与火狐(Firefox)这两种浏览器在JavaScript编程中所遇到的一些常见兼容性问题,并提出相应的解决方案。 #### 二、关键兼容性问题及解决方法 ##### 1. 获取DOM元素的方式 ...

    ie chrome firefox 兼容

    此外,我们还可以使用其他技术来实现浏览器兼容性处理,例如 使用浏览器特定的 CSS hack 或 JavaScript 代码。然而,无论我们使用哪种技术,navigator 对象和 userAgent 属性都是我们实现浏览器兼容性处理的基础。

Global site tag (gtag.js) - Google Analytics