防止SWT浏览器元素接收鼠标单击

时间:2011-06-06 13:47:27

标签: java browser swt mouseevent

我正在使用eclipse SWT工具包,我正在尝试使用它来创建一个浏览器窗口,只会有条件地将鼠标点击传递到底层文档(我想阻止页面中的Flash和Javascript获得点击)。我想要做某种方式:

  • 检查鼠标事件的进入情况,并根据我指定的条件将它们传递给其他侦听器。
  • 从窗口中删除所有侦听器,只删回我想要的侦听器。

这些都可能吗?

1 个答案:

答案 0 :(得分:1)

与其他SWT组件一样,浏览器具有addMouseListener方法。因此,您可以实现自己的侦听器,只传递您想要的传递。

see javadoc of browser

修改

根据您的要求,可能有两种方法可以做到。

首先,您可以在浏览器中使用JavaScript中的事件监听(如果使用html页面,则无法避免使用JavaScript)。如果你知道你将拥有Mozilla浏览器渲染核心(你必须安装XUL Runner),你可以使用JavaXPCOM,但这对我来说是个未知数。

snippet - listen for DOM mousedown events with javascript

其次,您可以从JavaScript调用Java函数(再次,处理onclick事件,然后决定Java,如果您不想使用JavaScript)。

snippet - call Java from JavaScript

但坦率地说,这两种方式都比纯粹的JavaScript提出方式更丑陋。