调用注入的java脚本';来自GWT的s函数
我有GWT应用程序、html文件和javascript文件。在GWT应用程序中,我在GWT html面板中加载html文件,然后在该面板上注入javasript。我定义了两个功能,如“提交”、“取消”等。。在javasript文件中。我在GWT客户端页面中也有相应的按钮。现在,当我点击gwt客户端页面上的提交按钮时,它应该调用javascript文件的“提交”功能 javascript文件中的代码:调用注入的java脚本';来自GWT的s函数,java,javascript,jquery,gwt,javascript-injection,Java,Javascript,Jquery,Gwt,Javascript Injection,我有GWT应用程序、html文件和javascript文件。在GWT应用程序中,我在GWT html面板中加载html文件,然后在该面板上注入javasript。我定义了两个功能,如“提交”、“取消”等。。在javasript文件中。我在GWT客户端页面中也有相应的按钮。现在,当我点击gwt客户端页面上的提交按钮时,它应该调用javascript文件的“提交”功能 javascript文件中的代码: $('#submitButton').click( function () { al
$('#submitButton').click( function () {
alert('submit clicked');
dosomething();
}
});
我已经在GWT客户端页面中尝试使用JSNI,如下所示
public native JavaScriptObject submitForm()/*-{
return $doc.submitButton(); // tried with $wnd.submitButton() as well.
}-*/;
但它不工作,并抛出以下错误
com.google.gwt.event.shared.UmbrellaException: Exception caught: (TypeError) $doc.submitButton is not a function
错误似乎很明显-您正在调用
submitButton
,这不是一个函数(它可能是未定义的
,除非您在显示的代码之外做了其他操作)。您可能应该这样做:$wnd.jQuery('submitButton')。单击()
谢谢Igor。根据您的建议,现在我并没有得到错误,但它也并没有命中javascript函数。我尝试使用$wnd.jQuery(“#submitButtonDoesNotExist”).click()等随机名称。我希望出现一些错误,但没有错误,什么也没有发生。您能从Javascript控制台(Firebug、Chrome Developer Tools等中的控制台)触发单击吗?只需将jQuery(“#submitButton”)放在那里。单击()(此处不需要$wnd
部分)。当您尝试触发来自GWT的调用时,您是否检查过DOM中确实有一个id为submitButton
的元素?谢谢Igor。在html文件中添加了一个id为submitButton的元素,它也起了作用。