小编CR.*_*CR.的帖子

如何在Safari中将Javascript对象传递给Java applet?

我正在尝试从Javascript调用Java applet,但是当我传递一个对象时,Java applet只接收null.这适用于IE和Firefox,但不适用于Safari 4(尝试过OSX和Windows版本,似乎都不起作用).

我正在调用的Java applet方法可能如下所示:

public void sampleFunction(JSObject someobject) throws Exception
{
   someobject.call("somemethod");
}
Run Code Online (Sandbox Code Playgroud)

以及调用它的HTML/Javascript:

<applet archive="Test.jar" code="Test.class" width="0" height="0" id="TestApplet" MAYSCRIPT></applet>
...
var testobject = { somemethod: function() {} };
document.TestApplet.sampleFunction(testobject);
Run Code Online (Sandbox Code Playgroud)

NullPointerException是Safari中的结果,因为Java applet中的"someobject"参数为null.同样,这适用于Windows,OSX和Linux中的Firefox和IE,但在Safari中,sampleFunction()将传递一个null参数.

而且,反方向似乎也不起作用.如果我得到窗口对象并从Java调用Javascript,我传递的任何对象都不起作用.例如,我可以传递一个字符串数组,在Javascript中我得到一个[Ljava.lang.String类型对象但我无法访问其中的任何内容(长度未定义且数组运算符不起作用).

Safari只是破了还是什么?有任何想法吗?

javascript java safari

5
推荐指数
1
解决办法
1851
查看次数

标签 统计

java ×1

javascript ×1

safari ×1