Я пытаюсь вызвать Java-апплет из Javascript, но когда я передаю объект, Java-апплет получает только ноль. Это работает в IE и Firefox, но не в Safari 4 (пробовал версии для OSX и Windows, но ни одна из них не работает).
Метод Java-апплета, который я вызываю, может выглядеть следующим образом:
public void sampleFunction(JSObject someobject) throws Exception
{
someobject.call("somemethod");
}
И 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);
NullPointerException является результатом в Safari, поскольку параметр "someobject" в апплете Java имеет значение null. Опять же, это прекрасно работает в Firefox и IE в Windows, OSX и Linux, но в Safari sampleFunction () получит нулевой параметр.
Кроме того, обратное направление тоже не работает. Если я получаю объект окна и вызываю Javascript из Java, любые объекты, которые я передаю, не работают. Например, я могу передать массив строк и в Javascript получаю объект типа [Ljava.lang.String, но не могу получить к нему доступ (длина не определена, операторы массива не работают).
Safari просто сломан или как? Есть идеи?