自定义数据类型拖放#39;'在JavaFX& HTML5

时间:2015-01-17 18:52:50

标签: javascript html5 drag-and-drop javafx-8 javafx-webengine

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

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

  1. " 文本/纯" - 这是文本的标准MIME类型。我的数据类似于" jerry seinfeld先生"
  2. " 应用程序/ x-pigelvy人" - 这将是我自己的MIME类型,它会让我检测到Drag' Drop操作实际上是关于Person对象的。然后数据将被拖动的人转换为JSON,例如 {" firstname":" jerry"," lastname":" seinfeld&# 34;}
  3. 您可以在https://github.com/pigelvy/dnd_jfx-js查看我的来源。

    开始拖动操作JavaFX ListView并将Person对象放在ClipboardContent中作为" text / plain "和" application / x-pigelvy-person ",我只能获得" text / plain "的数据。 (虽然JS对象DragEvent.dataTransfer)。无论我使用哪种浏览器(应用程序中的WebView或应用程序外的Firefox / Chrome),我都会得到相同的结果

    我刚刚阅读了HTML5 D'n'D specification,并根据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类型,但只能访问&#34; text / plain &#34;。< / LI>

      为什么我的自定义数据类型不可用?有没有我不了解的限制?

1 个答案:

答案 0 :(得分:0)

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

事实是,今天,无论出于何种原因,不可能在不同浏览器和JavaFX WebView之间使用D'n'D外来MIME类型。