1

我想在基于 JavaFX 的应用程序中混合 JavaFX 和 HTML5/JS。HTML5/JS 组件将使用 JavaFX WebView 集成,每个 HTML5/JS 组件将有一个 WebView 实例。

考虑到类Person{String:firstname, String:lastname},我正在研究在 JavaFX 和 HTML5 之间拖放的可行性。我的目标是能够将我的模型对象删除为以下 MIME 类型:

  1. " text/plain " - 这是文本的标准 MIME 类型。我的数据类似于“杰瑞·宋飞先生
  2. 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 规范,并根据第7.8.4.17.8.4.2节,我了解 D'n'D 即使在另一个应用程序/文档中开始/结束时也应该正确。

我刚刚注意到一些奇怪的事情:

  1. 在 2 个 Firefox 选项卡或 2 个 Opera 选项卡上加载我的 HTML 页面,我可以访问我的自定义 MIME 类型以及“ text/plain ”。
  2. 在同一个 JavaFX 应用程序中的 2 个 JavaFX WebView 上加载我的 HTML 页面,我确实可以访问我的自定义 MIME 类型,但只能访问“ text/plain ”。

为什么我的自定义数据类型不可用?有什么我不知道的限制吗?

4

1 回答 1

0

Drag'n Drop 不在 HTML5 规范中。HTML5.1 正在进行中的工作

事实是,今天,无论出于何种原因,都无法在不同的浏览器和 JavaFX WebViews 之间创建奇异的 MIME 类型。

于 2015-04-15T09:14:06.420 回答