Преобразование тегов APPLET в теги OBJECT для IE6

Я преобразовал следующие теги апплета в теги объекта, чтобы он мог работать. Но по какой-то причине ниже не работает. Во-первых, является ли приведенное ниже правильное преобразование, которое должно работать?

Апплет:

document.writeln('<applet'); 
document.writeln('  code="LittleShootApplet"');
document.writeln('  id="LittleShootApplet" name="LittleShootApplet"');
document.writeln('  scriptable="true"');
document.writeln('  mayscript="true"');     
document.writeln('  height="0" width="0"');
document.writeln('  style="xdisplay: none; width:0; height:0; padding:0; margin:0;" >');
document.writeln('</applet>');

Объект:

document.writeln('<OBJECT ');
document.writeln('classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="0" height="0">');     
document.writeln('<PARAM name="code" value="LittleShootApplet">');
document.writeln('<PARAM name="id" value="LittleShootApplet">');
document.writeln('<PARAM name="scriptable" value="true">');
document.writeln('<PARAM name="mayscript" value="true">');
document.writeln('<PARAM name="style" value="xdisplay: none; width:0; height:0; padding:0; margin:0;">');
document.writeln('</OBJECT>');

Кстати, я использую JavaScript, чтобы написать это на странице.

У меня есть кнопка на странице, которая пытается вызвать функцию Java-апплета с помощью JavaScript, но я получаю эту ошибку.

Message: 'document.LittleShootApplet' is null or not an object
Line: 77
Char: 1
Code: 0
URI: http://localhost/webs/front-end/activity.php

Вышеупомянутый Javascript имеет проблемы с вызовом функций из апплета Java, потому что апплет не был загружен должным образом.

Спасибо всем за любую помощь.


person Abs    schedule 14.12.2009    source источник


Ответы (2)


Добавьте атрибуты ID и Name непосредственно в тег object, а не в тег param:

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="0" 
 id="LittleShootApplet" name="LittleShootApplet">
...
</OBJECT>

Удален document.write для удобства чтения.

И я бы рекомендовал получать элементы по ID, а не по document.elementName:

 var applet = document.getElementById('LittleShootApplet');
 // instead of document.LittleShootApplet
person Christian C. Salvadó    schedule 14.12.2009
comment
Спасибо за ответ, я внес эти изменения, но до сих пор не удалось загрузить апплет в IE6. Мне придется открыть более конкретный вопрос. Спасибо. - person Abs; 15.12.2009

Firefox не работает с вашим атрибутом classid. Ниже должно работать кросс-браузер: -

<object type="application/x-java-applet"
 name="LittleShootApplet" width="0" height="0">
    <param name="code" value="LittleShootApplet">
    <param name="scriptable" value="true">
    <param name="mayscript" value="true">
</object>

В моих тестах и ​​IE8, и FF5 требовали атрибута "type", который вы пропустили. Параметр mayscript требуется только для плагинов Java до версии 1.6.0.10. Параметр с возможностью сценария по-прежнему требуется в соответствии с javadocs 1.6.0.21. В тесте с 1.6.0.24 для подписанного апплета IE8 назвал его ОК из JS без того, чтобы scriptable был установлен в true.

person Anon    schedule 27.07.2011
comment
Следующее ниже должно работать в разных браузерах: Я предпочитаю оставить кросс-браузерную часть deployJava.js. См. информацию. на странице тега апплета для ссылки. - person Andrew Thompson; 27.07.2011