使用GWT读取剪贴板数据

时间:2013-09-03 18:31:19

标签: java gwt

我已经使用此代码从浏览器处理CTRL + V,工作正常但是我需要获取这样的剪贴板数据:

    Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(Event.NativePreviewEvent event)
        {
            NativeEvent ne = event.getNativeEvent();
            // When CTRL + V is pressed
            if (event.getNativeEvent().getKeyCode() == 86 && // 'V'
                    event.getNativeEvent().getCtrlKey() == true) {
                // need to get the clipboard data
            }
        }
    });

2 个答案:

答案 0 :(得分:1)

JavaScript本身不允许简单地读取系统剪贴板,因为这将是一个巨大的安全风险。但是,大多数浏览器都提供了实现此目的的方法(尽管必须由用户启用)。因此,API是浏览器依赖的。对于Firefox,请查看https://developer.mozilla.org/en-US/docs/Using_the_Clipboard

据我所知,这个功能有na GWT特定的包装器。因此,您需要使用GWT JSNI(http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html

答案 1 :(得分:-1)

虽然我是将此问题标记为副本的人,但我认为该问题的答案可能有点过时。当我谷歌时,我找到了this discussion。那里的答案解决了JSNI的问题,但他们说它在FF中不起作用,因为FF需要手动启用限制。如果这没有帮助,您可能必须使用副本中的答案。