event.pageX在Firefox中提示‘event is not defined’的原因及修复方法
解决Firefox中
event is not defined的问题 这个问题的核心是浏览器对事件对象的处理差异:Chrome、Opera和Edge会自动将事件对象暴露为全局变量event,但Firefox遵循更严格的标准,不会自动做这件事,必须显式传递事件参数。
具体修改步骤:
在HTML事件绑定中传递
event参数
把onmousemove的调用改成这样,显式把事件对象传给funcpos:<img onmousemove='funcpos(event)' id=img1 src=bild.png onmouseenter="norm()" onmouseout="trans()"/>修改函数接收事件参数
更新funcpos函数,把event作为参数接收,同时别忘了给left和top加上px单位(否则部分浏览器可能无法正确解析样式):function funcpos(event){ document.getElementById('layer').style.left = event.pageX + 'px'; document.getElementById('layer').style.top = event.pageY + 'px'; }
补充说明:
你提到MouseEvent.pageX是可用的,这点没错——但前提是你能正确获取到MouseEvent对象。Firefox不允许隐式使用全局event,所以必须通过参数传递的方式拿到它,这样event.pageX就能正常工作了。
内容的提问来源于stack exchange,提问作者Jannis
相关产品推荐
相关产品推荐

