Iframe窃取鼠标事件
Iframe stealing mouse events
我在一个网站上使用Javascript滚动器类,该类可以无缝地为页面上所有溢出内容的预定义元素添加滚动条。客户最近要求其中一个元素包含iframe,以便他们可以轻松地将交互式内容添加到该区域。(我知道我知道,iframes,但我是这份工作的分包商。没有太大的吸引力。)幸运的是,iFram的内容是从同一个域中提取的,所以一旦内容加载,我就可以调整iframe的大小,进而启动Javascript滚动条。最终,它在Chrome中运行得很好。
在Explorer和Firefox中,只要鼠标在iframe上,iframe似乎就会窃取鼠标事件。因此mousewheel事件不再工作。您仍然可以拖动滚动手柄进行滚动,或者单击滚动轨迹上的任何位置,但使用鼠标滚轮不会有任何作用。它甚至没有启动活动。
我看到其他人也遇到过类似的问题,但还没有找到解决办法。有人有什么建议吗?
以下是Scroll类:http://hastebin.com/xisidogiju.coffee
感谢我能得到的任何帮助!
鼠标事件绑定到窗口,iframe就是窗口。正如你所说,这在webkit浏览器中是一个奇迹。
当鼠标移动到父窗口和iframe时,您需要在它们之间传递eventListener,也许还有eventHandler。
关于在iframe之间传递对象的一些参考:http://www.dyn-web.com/tutorials/iframes/refs.php.
我可以设法克服这个问题。您可以检查下面提到的jsfiddle中提到的解决方案。
http://jsfiddle.net/6nnMV/358/
在这里,我创建了一个事件来监听鼠标滚动,并将该事件绑定到iframe。
然后,您可以使用类似的scrollTop属性滚动父窗口或元素
$(element).scrollTop($(element).scrollTop+(number of pixels));
只有当您正在访问的iframe在同一域中时,这才会起作用。
- JsFiddle上的鼠标事件不起作用
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- node-webkit-从父窗口捕获iframe鼠标事件
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- 捕获鼠标关闭事件并在 Mozilla 中获取 clientX 和 clientY
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 如何在asp:linkButton上显示鼠标悬停事件上的图像
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 必须更改单击事件鼠标输入鼠标输出事件
- 当一个标记位于打开的infobox -事件鼠标悬停与infobox插件谷歌地图API v3
- 带有按钮的鼠标事件:鼠标悬停、onclick、静态