javascript - 带回调的 GWT JSNI Applet

标签 javascript gwt applet jsni

我花了很长时间编码和搜索这个网站和其他网站,但没有成功。我有一个 GWT 应用程序,它调用 JSNI,然后调用 Applet 来执行一些文件加载​​。所以当文件加载完成时我需要被回调。尽我所能,我无法调用我的 JavaScript(或 Java)回调。通常你引用 $wnd 变量是这样的:

$wnd.myFunc()

如果我尝试这个(或者我认为可能有效的大量其他变体),它会默默地失败。我什至不能调用像这样简单的东西:

$wnd.alert("Made it")

我尝试过使用window.eval("$wnd.myFunc()");

我也尝试过window.call具有相同的结果。

我猜测我处于错误的上下文中(GWT 将所有内容都放在 IFrame 中),但我找不到任何选项来访问 GWT 应该放置 "$wnd" 的全局上下文。变量。

出于安全原因,IFrame 应该受到一定的限制,我想知道我是否遇到了故意禁用的情况。

无论如何,我做了很多猜测,但我对 JavaScript 的了解有限,所以也许我忽略了一些简单的事情。

最佳答案

您的 GWT 代码

String value = JsniMethods.decryptData(data, publickey);

在 JsniMethods 类中

public static native String decryptData(String text, String publickey) /*-{
        var encrypted = $doc.appletname.methodname(text, publickey);
        return encrypted;
    }-*/;

你的小程序在html中初始化

<applet name="appletname" code="appletname.class"
        archive="appletname.jar" width="0" height="0" MAYSCRIPT="true"
        scriptable="true" > </applet>  

最后

将您的appletname.jar放入war文件夹中..

祝你好运

关于javascript - 带回调的 GWT JSNI Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500037/

相关文章:

java - GUI 中显示的 vector 图形

java - eclipse : applet browser debugging: failed to connect to remote VM. 连接被拒绝

javascript - 在组件外部 react propTypes

javascript - CSS 统一码字体

javascript - 将数组拆分为 100 个 Javascript 的多个字符串

java - 很难让 JSNI 与 Errai 一起工作

Java 小程序 : Nested Loops color change

javascript - 使用 jquery 更改链接样式和属性

google-app-engine - 在基于 GWT+GAE 的应用程序中验证

java - 预览文本区域中的内容