如何传递webengine.executeScript()使用的javascript对象

时间:2015-03-30 08:19:52

标签: javascript webview javafx

我是javafx的初学者。 这是我的html文件中的javascript函数



function setMap(mapExtent) {
    if (mapExtent) {
        var args = mapExtent.split(",");
        if (args.length >= 4) {
            frx = parseFloat(args[0]);
            fry = parseFloat(args[1]);
            frzoom = parseInt(args[2]);
            frMapType = args[3];
            if (pMap) {
                pMap.SetMap(mapExtent);
            }
        }
    }

}




我知道如何在C#中调用它,如下所示:



        public void setMap(string sExtend)
        {
            object[] objArray = new object[1];
            objArray[0] = sExtend;
            try
            {
                this.Document.InvokeScript("setMap", objArray);
            }
            catch { }
        }




这个javascript函数需要传递一个参数(一个javascript对象),但是在JAVAFX8的API文档中,方法webengine.executeScript(String script)的参数只是一个String类型。 如何使用webengine.executeScript()调用setMap(字符串sExtend)

1 个答案:

答案 0 :(得分:1)

获取窗口对象

JSObject jsObject = (JSObject) webEngine.executeScript("window");
然后尝试拨打

jsObject.call("setMap", sExtend);