使用 MS Internet Explorer 从 Java 小程序访问浏览器的 javascript

发布于 2024-08-16 23:51:38 字数 300 浏览 5 评论 0原文

我正在使用 JSObject 插件通过 java applet 编写 cookie,它与 SUN 的 Java 一起工作。

但是,对于 MS JVM,javascript 命令返回未定义,

我从我的小程序中发出以下内容:

String s1 = "document.cookie='logged=1'";
aobj = new Object[] { s1 };
JSObject.getWindow(MyAppletWindow).call("eval", aobj);

有任何线索吗?

I'm using JSObject plugin to write a cookie through the java applet and it worked with SUN's Java.

but, With MS JVM the javascript command returning undefined

I'm issuing the following from my Applet:

String s1 = "document.cookie='logged=1'";
aobj = new Object[] { s1 };
JSObject.getWindow(MyAppletWindow).call("eval", aobj);

any clue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与君绝 2024-08-23 23:51:38

首先,我不完全确定 Microsoft VM 支持 LiveConnect,这是 JavaScript<->Java 通信所必需的。

此外,Microsoft VM 仅支持最高版本的 Java 1.1。它已经严重过时了,并且很可能无论如何都不会加载您的小程序(您是否在 IE 状态栏中看到了著名的拼写错误 applet not inited ?)。事实上,即使您只使用 1.1 兼容的库......如果您使用的是最新的编译器,您也必须跳过一些步骤才能使其可由 1.1 VM 加载:

javac -source 1.1 - target 1.1 Foo.java

总之,Microsft VM 非常旧,您应该以 Sun VM 为目标(您可以使用 object 标记来强制执行此操作,阅读本文了解更多信息)

First, I'm not entirely certain the Microsoft VM supports LiveConnect, which is required for JavaScript<->Java communication.

Further, the Microsoft VM only supported up to version 1.1 of Java. It is severely outdated and most likely not loading your applet anyway (do you see the famous typo applet not inited in IE's status bar?). In fact, even if you were using only 1.1-compatible libraries.. if you're using a recent compiler, you would have to jump through some hoops to even make it loadable by a 1.1 VM:

javac -source 1.1 -target 1.1 Foo.java

In summary, the Microsft VM is very old and you should target the Sun VM instead (you can use an object tag to enforce this, read this article for more information)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文