相关疑难解决方法(0)

如何使用JSNI从GWT Java运行JavaScript函数?

从手册中无法理解:如何从Java运行JS函数?

例如,我的html页面中有一个函数:

<script type="text/javascript" language="javascript">
    function foo() {
        alert('Foo!');
    }
</script>
Run Code Online (Sandbox Code Playgroud)

以下模块显示了两个按钮,其中只有第二个按钮有效:

public class Test_GoogleWeb_JSNI_01 implements EntryPoint {

public void onModuleLoad() {

    Button fooButton = new Button("Foo!");
    fooButton.addClickHandler(new ClickHandler(){
        public void onClick(ClickEvent event) {
            fooRunner();
        };
    });


    HTML fooButtonNative = new HTML();
    fooButtonNative.setHTML("<input type='button' value='Foo Native' onclick='foo()'>");

    RootPanel rootPanel = RootPanel.get();
    rootPanel.add(fooButton);
    rootPanel.add(fooButtonNative);

}

public static native void fooRunner() /*-{
  foo();
}-*/;
}
Run Code Online (Sandbox Code Playgroud)

在手册中说,在嵌套框架中实现本机函数,这解释了这种情况.但是如何运行JS函数呢?

更新1 以下工作.

Java的:

public static native void fooRunner() /*-{
  $doc.fooRunner();
}-*/;
Run Code Online (Sandbox Code Playgroud)

JS:

<script type="text/javascript" language="javascript">
    document.fooRunner …
Run Code Online (Sandbox Code Playgroud)

java gwt jsni

8
推荐指数
1
解决办法
1万
查看次数

从javascript到java(一个GWT故事)

所以,我正在GWT中为嵌入式Web浏览器(Sketchup)设计一个应用程序.我可以通过将window.location值更改为"skp :: myFunciton @ myParams"来控制Sketchup.Sketchup可以在浏览器中执行javascript.我想做的是让sketchup给我模型的内容.

public static native void getModel() /*-{
    $wnd.location = "skp:getModel@";
}-*/;
Run Code Online (Sandbox Code Playgroud)

在第二个草图后有一个结果.但是我们如何将它归还给gwt?问题是入口点实例启动了请求,而JSNI只能将静态方法映射到javascript.

我以为我有一个事件和元素的解决方案......

//Sketchup javascript
var gwtwidget = document.getElementById("myTextArea")
gwtwidget.value = "blahblah";
gwtwidget.onchange();
Run Code Online (Sandbox Code Playgroud)

然后听取GWT的变化.唉,它不起作用.Gwt自己的事件系统覆盖,汇集,阻止(或其他)事件.我应该采取什么方法?我已经通过网络搜索信息,但我当然无法理解它.我猜的答案是......

1从javascript(以某种方式)调用入口点实例方法
2从gwt中拾取一个事件,将由gwt(以某种方式)拾取
3设置排序的异步回调接口机制(不知何故)

javascript java events gwt jsni

5
推荐指数
1
解决办法
2207
查看次数

标签 统计

gwt ×2

java ×2

jsni ×2

events ×1

javascript ×1