首页 新闻 会员 周边 捐助

关于在火狐浏览器下获取事件触发的event属性

0
[已解决问题] 解决于 2018-04-26 15:02

当使用js的严格模式时,在火狐中获取触发绑定事件的event属性出现问题,

 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them

但在非严格模式中可以使用

var event = arguments.callee.caller.arguments[0]

来获取event属性,有没有办法在严格模式下获取event属性?

向上走向下看的主页 向上走向下看 | 菜鸟二级 | 园豆:204
提问于:2018-04-24 21:07
< >
分享
最佳答案
1

jQuery帮你解决兼容性问题。

奖励园豆:5
西漠以西 | 小虾三级 |园豆:1675 | 2018-04-26 08:57

如果不是因为框架默认开启严格模式,就不会有这个问题了,在框架开发的时候也能使用jquery吗,看过很多帖子说的是使用框架的时候最好不要依赖jquery,能讲一讲吗

向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-26 09:03

@向上走向下看: 

什么框架?

如果你使用的框架和jQuery之间有冲突,那么框架本身就要解决兼容性问题(毕竟jQuery就是帮我们搞定这件事的)

西漠以西 | 园豆:1675 (小虾三级) | 2018-04-26 09:54

@西漠以西: 你可以在火狐中试一下,在"use strict"模式下好像就不是兼容性问题,event属性在这种环境下有点不支持的意思。对这个问题真的令我头疼的不行。。。

向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-26 14:24

@向上走向下看: 

不是event在你的环境下有问题,而是

火狐中严格模式下 ,'caller', 'callee', and 'arguments' 不能访问。

西漠以西 | 园豆:1675 (小虾三级) | 2018-04-26 14:32

@西漠以西: 那jquery怎么在严格模式下获取event对象呢,现在脑袋有点懵,都想读jquery源码了

向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-26 14:44

@向上走向下看: 

不存在“jquery怎么在严格模式下获取event对象呢”这个问题!

无论在什么模式下,无论在哪种(主流)浏览器中(包含火狐)jQuery都能获取event对象。

这就是jQuery的价值。

至于,如何写代码来使用jQuery获取event对象,你要查看jQuery的官方文档。

西漠以西 | 园豆:1675 (小虾三级) | 2018-04-26 14:50

@西漠以西: 看了一眼jquery源码,上面第二行就是"use strict",是我理解错了,谢谢你了

向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-26 14:53
其他回答(2)
0

“var event = arguments.callee.caller.arguments[0] || window.event ”改一下这句试试?

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-04-25 15:42

这个试过了,在严格模式下,火狐不支持callee、caller的用法。

谢谢了

支持(0) 反对(0) 向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-25 15:43
0

在没有找到解决方法的情况下只能使用原生js对DOM进行操作,操作会更繁琐一些,但是兼容性更好。

向上走向下看 | 园豆:204 (菜鸟二级) | 2018-04-25 22:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册