从Java调用FXML文档中定义的javascript函数

从Java调用FXML文档中定义的javascript函数,java,javascript,javafx,fxml,Java,Javascript,Javafx,Fxml,我正在使用FXML文档来定义JavaFX布局,并一直在使用Java控制器,但现在我直接在FXML文档中查看javascript事件处理程序 我想知道是否有人知道如何从应用程序调用FXML文档中定义的Javascript函数 ie提供了一个FXML文档F.FXML <BorderPane> <fx:script> function something() {} </fx:script> </BorderPane> 是否可以执行以下

我正在使用FXML文档来定义JavaFX布局,并一直在使用Java控制器,但现在我直接在FXML文档中查看javascript事件处理程序

我想知道是否有人知道如何从应用程序调用FXML文档中定义的Javascript函数

ie提供了一个FXML文档F.FXML

<BorderPane>
  <fx:script>
     function something() {}
  </fx:script>
</BorderPane>
是否可以执行以下等效操作:

root.something()
我想解决的办法是在幕后使用控制器类,但我仍然希望用javascript定义函数。

关于使用javascript使用JavaFX

public class MapApp extends Application {
    public static int ZOOM_STREET = 10;

    public static class City {
        public City(String name) {...}
        ...
    }

    public int currentZipCode;

    public void navigateTo(City location, int zoomLevel) {...}
     ....
}
还有javascript:

function navigateTo(cityName) {
   //Assumes that the Ant task uses "myMapApp" as id for this application
   var mapApp = document.getElementById("myMapApp");
   if (mapApp != null) {
       //City is nested class. Therefore classname uses $ char 
       var city = new mapApp.Packages.testapp.MapApp$City(cityName);
       mapApp.navigateTo(city, mapApp.Packages.testapp.MapApp.ZOOM_STREET);
       return mapApp.currentZipCode;
   }
   return "unknown";
}
window.alert("Area zip: " + navigateTo("San Francisco"));
如本教程所述:

[上面]中的JavaScript代码段将多个值传递给[上面]的Java代码。在Java代码中使用这些值之前,它们会自动转换为最接近的Java类型


谢谢你的回答,但不幸的是,我不想在这里谈论java和javascript。这介于网页中的javascript和嵌入式javafx小程序中的java之间。JavaFX场景图中WebView中的网页之间也可能存在相同的情况。这不适用于FXML视图中的JavaScript。
function navigateTo(cityName) {
   //Assumes that the Ant task uses "myMapApp" as id for this application
   var mapApp = document.getElementById("myMapApp");
   if (mapApp != null) {
       //City is nested class. Therefore classname uses $ char 
       var city = new mapApp.Packages.testapp.MapApp$City(cityName);
       mapApp.navigateTo(city, mapApp.Packages.testapp.MapApp.ZOOM_STREET);
       return mapApp.currentZipCode;
   }
   return "unknown";
}
window.alert("Area zip: " + navigateTo("San Francisco"));