以下gwt jsni方法代码仅在我打开firebug时才“工作”,我认为因为它减慢了页面渲染的速度,足以让外部js文件完成加载。
在尝试执行之前,它没有等待jquery插件完成加载,我做错了什么?
private native void makeHtml(Element element)
/*-{
$wnd.$().ready(function(){
try{
$wnd.$(element).wmd({"preview": true});
alert(1);
}
catch(e)
{
alert(e);
}
});
}-*/;
答案 0 :(得分:1)
我在GWT中遇到了jQuery UI的一些问题,因为例如数组没有像jQuery(UI?)那样扩展(注意JSNI代码是在sandbox = iframe中执行的)。尝试将有问题的代码放在main / host HTML页面的函数中,并通过JSNI和$ wnd从Java / GWT代码调用它 - 如果这有帮助,那么你可能会看到我面临的同样问题(在这种情况下你可能必须在GWT代码之外“导出”所有JSNI函数并将它们包装在JSNI调用中。)
HTH,如果没有,我们会想到别的东西;)
答案 1 :(得分:1)
在窗口小部件中,创建一个onLoad()
方法来调用jsni。