ie和firefox不兼容的解决方法集合 |
本文标签:ie,firefox,不兼容 1、firefox和ie事件event处理 在ie中,事件对象是作为一个全局变量来保存和维护的 。 所有的浏览器事件,不管是用户触发 的,还是其他事件, 都会更新window.event 对象 。 所以在代码中,只要轻松调用 window.event 就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处理 在ff中, 事件对象却不是全局对象,一般情况下,是现场发生,现场使用,ff把事件对象自动传 递给对应的事件处理函数 。 在代码中,函数的第一个参数就是ff下的事件对象了 。 <button id="btn4" onclick="foo4()">按钮4</button> <script> function foo4(){ var evt=getEvent(); var element=evt.srcElement || evt.target ; alert(element.id) } function getEvent() { //同时兼容ie和ff的写法 if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ return arg0; } } func=func.caller; } return null; } </script> 2、firefox和ie对手型指针cursor不兼容 手型指针有cursor:hand和cursor:pointer两种写法,其中cursor:hand在ff中不支持,返回错误! 只要使用cursor:pointer即可,ff和ie都支持! |