【发布时间】:2015-01-17 18:52:49
【问题描述】:
我想在基于 JavaFX 的应用程序中混合使用 JavaFX 和 HTML5/JS。 HTML5/JS 组件将使用 JavaFX WebView 集成,每个 HTML5/JS 组件将有一个 WebView 实例。
考虑到类Person{String:firstname, String:lastname},我正在研究JavaFX 和HTML5 之间拖放的可行性。我的目标是能够将我的模型对象删除为以下 MIME 类型:
- "text/plain" - 这是文本的标准 MIME 类型。我的数据类似于“Mr jerry seinfeld”
- "application/x-pigelvy-person" - 这将是我自己的 MIME 类型,它可以让我检测到 Drag'n'Drop 操作实际上是关于 Person 对象的。然后数据会被拖动的 Person 转换为 JSON,例如 {"firstname":"jerry","lastname":"seinfeld"}。
你可以在https://github.com/pigelvy/dnd_jfx-js查看我的消息来源。
开始拖动 JavaFX ListView 并将 Person 对象作为“text/plain”和“application/x-pigelvy-person”放入 ClipboardContent 中,我只能获取“text/plain”的数据(尽管是 JS 对象 DragEvent.dataTransfer)。无论我使用哪种浏览器(应用内的 WebView 或应用外的 Firefox/Chrome),我都会得到相同的结果
我刚刚阅读了HTML5 D'n'D specification 并根据7.8.4.1 和7.8.4.2 部分,我知道即使在另一个应用程序/文档中开始/结束时,D'n'D 也应该正确。
我刚刚注意到一些奇怪的事情:
- 在 2 个 Firefox 选项卡或 2 个 Opera 选项卡上加载我的 HTML 页面后,我可以访问我的自定义 MIME 类型以及“text/plain”。
- 在同一个 JavaFX 应用程序中的 2 个 JavaFX WebView 上加载我的 HTML 页面时,我确实可以访问我的自定义 MIME 类型,但只能访问“text/plain”。
为什么我的自定义数据类型不可用?有什么我不知道的限制吗?
【问题讨论】:
-
您在这方面取得了成功吗?我的情况非常相似,我无法在浏览器和 JavaFx 之间使用自定义 mime 类型 dnd 对象。
标签: javascript html drag-and-drop javafx-8 javafx-webengine