从html脚本标记调用GWT Java函数
我有一个GWT项目,我想在GWT项目的主html文件中添加一个脚本标记,该文件调用位于我的客户机代码中的Java函数 根据示例,我应该添加类似以下html标记的内容:从html脚本标记调用GWT Java函数,java,javascript,gwt,jsni,Java,Javascript,Gwt,Jsni,我有一个GWT项目,我想在GWT项目的主html文件中添加一个脚本标记,该文件调用位于我的客户机代码中的Java函数 根据示例,我应该添加类似以下html标记的内容: <script type='text/javascript'> this.@com.myCompany.myProject.client.myClass::myFunction(); </script> 也就是说,没有调用myFunction 但是,当我从JSNI方法发出相同的调用时,它就工作了 可能无
<script type='text/javascript'>
this.@com.myCompany.myProject.client.myClass::myFunction();
</script>
也就是说,没有调用myFunction
但是,当我从JSNI方法发出相同的调用时,它就工作了
可能无法从html脚本执行调用,还是我做错了什么
谢谢
myFunction()
存在,但它被称为其他名称public static native void exportMyFunction() /*-{
$wnd.myFunction =
$entry(@com.myCompany.myProject.client.myClass::myFunction());
}-*/;
然后在应用程序初始化中,必须调用EnclosingClass.exportMyFunction()
。然后,在手工制作的javascript中,您可以通过以下方式访问它:
window.myFunction();
我试图解决一个类似的问题,只是一个问题,如何将字符串传递给myFunction()?类似于myFunction(字符串s)?查看此文档以了解如何为JSNI调用添加参数:在这个答案中还有完整的示例:如果myFunction()是一个实例方法而不是静态的,这是如何工作的?JavaScript如何知道调用哪个myFunction()实例?没有。我很想知道这是否解决了问题,因为我也遇到了同样的情况,因此它抛出了一个异常。我不认为您可以从手写JavaScript调用非静态GWT Java方法,因为在导出本机函数的应用程序初始化过程中,您还没有EnclosingClass的实例,并且存在鸡和蛋的问题。@axle123都在文档中:
window.myFunction();