如何解决firefox下window.event的问题】的更多相关文章

一.在函数中传递event参数 在函数中传递event参数,这样我们就可以兼容IE和FF的event的获取了,如下面的函数: function _test(evt){    var src = evt.srcElement || evt.target; // 获取触发事件的源对象    alert(src.value); // 打印该对象的value属性} 那么我们在使用的时候就应该这样: <input type='button' value='click me' onclick='_test(…
场景描述: 在用户行为采集的过程中,需要侦听window下的event对象,根据事件类型做相应的过滤处理,但在firefox下window.event是未定义的: 问题分析: 要想获取event属性共有两种方法:一种是访问window.event属性,另一种便是事件响应函数的第一个参数.当不支持event属性时,只有后者可以获取到event:如何在事件响应函数中的任何地方准确捕捉到event属性呢?比如事件函数内部嵌套了其他回调函数,在回调函数中使用event,直接使用arguments[0]是…
获取鼠标坐标,IE下window.event.clientX和window.event.clientY就可以获取x,y的座标了.但是firefox却不行,浏览器报错window.event is undefined! 加了一段代码解决! var evt = window.event || arguments.callee.caller.arguments[0]; 测试 if (typeof (window.evt) == 'undefined') alert('window.event is u…
这里比原文稍加改进,让FF也支持 event.srcElement了, 省得每次写兼容代码挺麻烦的: //For firefox window.event if(typeof(window.event) == "undefined") { var $EventGetter = function(){ var c=$EventGetter.caller; while(c.caller)c=c.caller; var evt = c.arguments[0]; evt.srcElement…
众所周知,在Firefox下input type=”button”的文字是不好居中的,原因在于Firefox自己比较二,弄了个私有属性,导致以下问题的出现: 按钮左右本身有2px的间距(FF私有属性写了padding:0 2px所致): 按钮文字居中是不行的(此时设置padding-bottom是没用的) : 等等… 1 input[type="reset"]::-moz-focus-inner, 2 input[type="button"]::-moz-focus…
由于FireFox的刷新机制与IE有较大区别.所以javascript代码 document.location.reload();通常在IE上工作正常,在Firefox下效果却并不理想,这是因为Firefox会记录上一次的页面元素的值,所以我们常常会看见刷新页面后,旧的值却好保留在页面上. Tips: document.location.reload()相当于在Firefox上 按F5 来刷新,但 F5刷新 并不能清除缓存中被保留的页面元素的值.但我们可以用Ctrl+F5 来实现IE下F5的效果…
问题如标题所写,在ajax回调里面拿到即将要跳转的链接url,使用window.open(linkUrl),没有起作用,而且代码也没有报错,查找原因是:大部分现代的浏览器(Chome/Firefox/IE 10+/Safari)都默认开启了组织弹出窗口的策略,原因是window.open被广告商所滥用,严重影响用户的使用. 这个组织弹出窗口的操作,并不是直接封杀window.open(),而是根据用户的行为来判定这次操作是不是属于流氓操作.如果是用户自己的动作触发的window.open就不会被…
type:事件的类型,如onlick中的click:srcElement/target:事件源,就是发生事件的元素:button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键)clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置:(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件…
type:事件的类型,如onlick中的click:srcElement/target:事件源,就是发生事件的元素:button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键)clientX/clientY: 事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置:(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪 里,只要…
一.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下的even…
前言: 项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,. 实现: 很轻松的在网上找到了类似代码 $("#search_text").focus(function (event) { with (event.srcElement) //如果当前值为默认值,则清空 if (value == defaultValue) value = ""; }); $("#search_…
原因 Ubuntu 为了规避专利和版权问题,很多东西没有预装,比如音视频解码器AAC. 那么为什么明明 Ubuntu 上没有AAC解码器, Chrome 却可以正常播放呢,自然的想法是 Chrome 夹藏私货.Google一下,果然 Chrome 内置有一批解码器,包括AAC.其实和Ubuntu 一样,开源的 Chromium 同样规避了 MP3/AAC/H.264等 解码器,只是在 Google 私有的 Chrome 里内置了这些,正强推的Chrome OS 则内置了更多. 解决方案 执行如下…
FF的FIREBUG,不仅能测试JS还能检查CSS错误,是一般常用的. 但它主要检查FF方面的错误,对IE就无能为力了. 要测试IE,就用ieTester,它可以测试IE几乎所有版本(1.0恐怕也用不到测试了),用法也很方便. 至于JS对不同浏览器的兼容注意事项,的确很多,下面给你的也只是部分,一般建议还是采用jquery,prototype等一些已经处理好了兼容的脚本库,更重要的是,它们简化了很多操作,还提供了平常你很难实现的增强功能.可以去搜搜这方面的说明文章. JS兼容浏览器FF/IE技巧…
本文链接:https://blog.csdn.net/qq_41348029/article/details/81288481 e = e || window.event 在做事件处理时,用于区分IE和其他浏览器事件对象. 下面链接为事件对象的参考资料: http://wenku.baidu.com/view/400a89f4f61fb7360b4c65ca.html <!DOCTYPE HTML><html> <head> <title></titl…
判断事件触发的元素:     var tag = window.event.target || window.event.srcElement;    if (tag.tagName.toLowerCase() == "input") {        return;    } window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为事件通过元…
IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblur="alert(this.value)">//正确滴 ****************** <input type="text" onblur="method()">//错的啦<script>function meth…
html代码段: <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckProjectAuthority=false" frameborder="0" scrolling="no" style="height:100%; width: 100%;"></iframe> JavaScript代码段:…
var evt = arguments.callee.caller.arguments[0] || window.event; evt.preventDefault(); evt.stopPropagation(); 找了半个小时,终于解决了.…
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script src="vue2.0.js"></script></head><body><div id="box"> <…
有个功能,需要用drag drop api 来做. 发现在firefox下拖放,会出现新的tab 页签,即使在ondragover.ondrop中使用了event.preventDefault也无济于事,在mozllia上MDN的例子拖动也会弹出新的tab 页签. 随后发现有同事写的drag drop 在firefox下不会弹出,遂研究起来,发现用的dataTransfer.setData("asdf",""),同事只是用了drag drop的效果,没有用dataT…
这实际上是一个浏览器兼容性问题,根源百度中一大堆,简要说就是ie中event对象是全局变量,所以哪里都能使用到,但是webkit内核的浏览器中却不存在这个全局变量event,而是以一个隐式的局部变量的形式传入(后文会详说). function myfunc(param){ alert(window.event); } //ie中 <input type="button" onclick="myfunc('testie')" > //一切正常 //webk…
兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法 // 获取事件function getEvent(){ if(window.event) {return window.event;} func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEv…
由于项目需求要求只能允许用户输入数字和小数,用到了event.keycode后IE系列.chrome浏览器都无问题,在firefox下出现了event not defined的错误 原因:火狐下event对象不能通过window.event获取到,而是在调用函数时以参数的形式传递的. 解决方案:将其改为兼容的写法即可. 另外注意: event对象的keyCode属性在火狐和其他浏览器下也不同,火狐使用的是event.which,所以这一块也写成兼容模式 例子:设置文本框只能输入数字和浮点数验证…
1.window.location.hash window.location.hash这个属性主要是读取和写入网页位置的,我们经常会用来控制网页单页面跳转或者是控制网页位置.然而这个属性在firefox下遇到中文时却会被自动转码为UTF-8,这是火狐等相似浏览器对中文url的一些处理的不同.以下介绍一个方法可以fixed掉这个问题. 2.解码函数 前面已经提到,firefox喜欢帮我们把中文转换成utf-8的编码格式,那么我们只用使用合适的解码函数对其解码皆可. javascript中有三个编码…
在使用layui的slider滑块控件的时候,firefox遇到了event is not defined 的情况.追究原因是因为layui的layui.js 的滑块功能依赖于silder.js,而官方的slider.js的源码是有问题的.格式化后: 会发现,event是undefined.所以我们要改成兼容性写法.这样无论在哪个浏览器下,都会兼容. 在173-174 line之间写下这句 var ev = e || window.event; 将175行条件判断的两个event 改成 刚刚初始…
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 中则是…
一.问题描述 我是流体布局控,经常会遇到文本框以及文本域宽度100%自适应显示的情况. 如下效果图: 在窄屏下,上面的文本框宽度也要跟着外部宽度变小. 难点对于文本框或者文本域,光标最好距离左侧边缘有一定的间距.因此,我们基本上都有类似下面的设置: input { padding-left: 10px; } 但是,如果只考虑文本框本身(父标签无其他特殊处理),这一套在流体环境下是行不通的,因为固定的padding数组无法让文本框永远100%自适应外部的宽度,至少非现代浏览器下是如此!//zxx:…
window.event.keycode-获取按下的键盘值 这里只列出了一些较常用的键盘值更加详细的键盘值请访问此人博客:https://www.cnblogs.com/z-sm/p/3597592.html 详细event.keycode值大全 1 keycode 8 = BackSpace BackSpace  2 keycode 9 = Tab Tab  3 keycode 12 = Clear  4 keycode 13 = Enter  5 keycode 16 = Shift_L …
fontello是一个非常好的web font生成工具,但是在使用过程中发现生成的字体在firefox下死活渲染不出来,只有chrome可以正常渲染,字体文件和页面在同域下. 试过各种办法,最后发现一个规律,如果只选择空心符号和非空心符号,那么是可以正常渲染的.这就说明,是fontello生成的字体文件有问题. 于是尝试更改fontello的设置,发现其中有一个hint选项是enable的,于是试着去掉这个选项: 再次尝试,发现竟然好了. 这个选项,我目前还没搞懂到底干嘛的,hint是暗示的意思…
e = e || window.event是我们在做事件处理时候区分IE和其他浏览器事件对象时常用的写法.但是这行兼容性代码有没有必要出现在所有的事件句柄中呢?标准事件调用方式需要这行代码吗?下边我们做详细讨论. 在讨论之前,如果有些忘记或者不熟悉事件对象的先参考其他资料,或者看看这个连接的资料http://wenku.baidu.com/view/400a89f4f61fb7360b4c65ca.html 这里作者把四种主要的事件调用方式总结了出来,本文的讨论也是在此之上延伸说明. <!DOC…