这是 html 格式的来电按钮示例:
<input type='button' value='Call' onclick='Test()'>
下面是一些我试过但没有用的函数:
<script type="text/javascript">
function Test() {
com.tests.client.Test_GoogleWeb_JSNI::Callee()();
}
</script>
但我们无法调用 Callee()。我们如何实现这一点?我的意思是我们如何从 javascript 调用 JSNI 函数?
帮助将不胜感激。
最佳答案
这很容易。您需要“导出”用 GWT(或者它可以是另一个 JSNI)函数编写的函数。
这是相关文档:http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#calling
所以在你的情况下:
在您的 GWT 代码中:
public static void Caller() /*-{
...
}-*/
public static native void exportStaticMethod() /*-{
$wnd.Callee =
$entry(@com.tests.client.Test_GoogleWeb_JSNI::Callee());
}-*/;
然后您在某处调用 exportStaticMethod()
,甚至在您的 onModuleLoad 中。 <<你必须这样做
然后您可以从手写的 javascript 代码中调用 Callee()
。
您的按钮代码:
<input type='button' value='Call' onclick='$wnd.Callee();'>
关于javascript - 如何从 Javascript 函数调用 JSNI 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277026/