Ошибка при вызове JavaScript из Java-апплета: неизвестный протокол

Привет всем! У меня возникла проблема при попытке вызвать JavaScript из Java-апплета. Я пытаюсь использовать метод showDocument(), но получаю ошибку о неизвестном протоколе.

Вот мой код:

MoiApplet.getAppletContext().showDocument("javascript:pokazhiSoobshchenie('Privet, mir!');");

Но вместо выполнения JavaScript, я получаю такое исключение:

java.net.MalformedURLException: neizvestnyi protokol: javascript

Я думал, что это должно работать, но очевидно что-то делаю не так. Может кто-нибудь подсказать, в чем проблема и как ее решить? Может есть какой-то другой способ вызвать JavaScript из апплета? Буду благодарен за любую помощь!

Эх, апплеты… Головная боль еще та. Может, стоит подумать о переходе на что-то более современное? Например, веб-приложение на JavaScript? Оно и с браузерами дружит лучше, и с безопасностью проще. А то возиться с этими протоколами - сплошная морока. Как думаешь, есть возможность переписать функционал на чистом JS?

Использование JSObject - хороший вариант, но есть еще один способ. Попробуй через AppletContext и метод eval():

AppletContext context = getAppletContext();
((JSObject)context).eval(“pokazhiSoobshchenie(‘Privet, mir!’)”);

Этот подход тоже работает и не требует доп. импортов. Главное убедись, что у тебя включена поддержка LiveConnect в браузере, иначе могут быть проблемы с безопасностью. В целом апплеты уже устарели, может стоит подумать о веб-приложении?

да, с методом showDocument() часто бывают такие проблемы. я сам сталкивался с этим. попробуй использовать JSObject вместо этого. получи ссылку на window объект браузера и вызывай js-функции через него. примерно так:

JSObject window = JSObject.getWindow(this);
window.eval(“pokazhiSoobshchenie(‘Privet, mir!’)”);

это должно сработать. только не забудь импортировать netscape.javascript.JSObject. удачи с апплетом!