Что вы можете сделать в Internet Explorer, загружает апплет на страницу, которая предоставляет методы, которые делают то, что вы хотите сделать. Вы получаете ссылку на апплет, а затем вызываете методы в этой ссылке.
<applet id="myAppletId" name="myAppletName" ...>
var applet = document.getElementById('myAppletId');
var d = applet.getDateFromApplet();
В вашем апплета вам потребуется открытый метод getDateFromApplet()
который возвращает java.util.Date
.
Обратите внимание, что то, что я представляю , должно быть, но прошло много лет с тех пор, как я это сделал (он работал в NS4, 6 и IE 4+ в то время). Однако я не использовал getElementById()
, но использовал var applet = document.myAppletName;
.
Другая сложность в том, что если вы хотите, чтобы это выполнить при загрузке страницы, апплет будет почти наверняка не будет готов, что требует код что-то вроде:
function checkApplets() {
var da = document.applets; // document.getElementsByName('applet');?
if (da.length > 0) {
for (var ii = da.length; ii-- > 0;) {
if (!da[ii].isActive()) {
window.timerId = setTimeout(checkApplets, 250);
return;
}
}
if (window.timerId) {
clearTimeout(window.timerId);
}
}
window.appletsLoaded = true;
}
И наконец, возможно (должны) можно сделать это с помощью тега <object>
, но, как я уже сказал, прошло много лет с тех пор, как мне нужно было взаимодействовать с апплетом Java из клиентского JavaScript, поэтому я его не тестировал.
Почему бы вам не попробовать? – karim79
«Java имеет такое же общее с JavaScript, как и автомобиль с ковровым покрытием». Если вы можете сделать это в Firefox, это сильно утечка абстракций, не говоря уже о том, чтобы позволить внешней веб-странице запускать локально исполняемый код на компьютере посетителя. – Esko
Конечно, я попробовал, и, конечно, это не работает таким образом. Должно быть очевидно, что вопрос означает «что такое синтаксис для того, чтобы делать то же самое в ie». – joeforker