使用 MS Internet Explorer 从 Java 小程序访问浏览器的 javascript
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,我不完全确定 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)