我正在开发一个聊天应用程序,我使用一个 webView
来显示发送者和接收者之间的对话,并使用另一个 webView
来编写包含文本和内容的消息表情符号(使用webView的原因是它能够使用html沿着文本显示表情符号),第二个webView
可以通过设置其contenteditable
进行编辑> 在 html 中将属性设置为 true
,现在的问题是,当我从包含格式、链接和图像的位置拖放文本或复制文本时,它将显示所有格式,这就是我想要的原因禁用拖放并粘贴来自外部源(例如浏览器)的文本,如果文本包含链接,则通过单击该链接,它会将您定向到该页面,并且 webView
将成为网络浏览器。
最佳答案
棘手(我认为)。一种方法是提供您自己的 EventDispatcher 实例并拦截您想要阻止的操作,例如拦截 DragEvent 以防止放置和粘贴操作的按键事件。当然,这种方法的缺点是:
1) 您必须针对粘贴快捷方式编写特定于平台的代码(CTRL+V 与 META+V)
2) 如果您想以这种方式通过上下文菜单禁用粘贴,则必须完全阻止它出现。不过我认为在你的情况下这是有意的。
因此,在等待更好的解决方案之前,我会选择调度员。确定要处理哪些事件并将其转发到调度程序链。使用您想要阻止的事件。
关于JavaFX : how to disable drag and drop and pasting from external sources on WebView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26553201/