从Java调用FXML文档中定义的javascript函数
我正在使用FXML文档来定义JavaFX布局,并一直在使用Java控制器,但现在我直接在FXML文档中查看javascript事件处理程序 我想知道是否有人知道如何从应用程序调用FXML文档中定义的Javascript函数 ie提供了一个FXML文档F.FXML从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> 是否可以执行以下
<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"));