8
無法從手冊中瞭解:如何從Java運行JS功能?如何使用JSNI從GWT Java運行JavaScript函數?
例如,我有一個函數在我的html頁面:
<script type="text/javascript" language="javascript">
function foo() {
alert('Foo!');
}
</script>
以下模塊顯示兩個按鈕,僅次於它的工作原理:
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();
}-*/;
}
它在說明書上說,這本地函數在嵌套框架內實現,這解釋了情況。但是如何運行JS功能呢?
UPDATE 1 以下的工作。
的Java:
public static native void fooRunner() /*-{
$doc.fooRunner();
}-*/;
JS:
<script type="text/javascript" language="javascript">
document.fooRunner = function foo() {
alert('Foo!');
}
</script>
有沒有更好的辦法?
你可以調用一個返回對象的javascrypt方法嗎?並使用該對象? – 2015-12-05 05:30:57