Почему этот Java-апплет дает сбой и закрывает IE6?

Я использую следующий Java-апплет, чтобы получить полный путь к файлу, который должен быть загружен: SVN LittleShoot.

Дело в том, что апплет инициализирован и, кажется, работает в IE6, но когда я вызываю одну из функций из JavaScript в апплет, чтобы открыть диалоговое окно файла, браузер падает и закрывает только диалоговое окно, потому что появляется.

Почему дело? Как я могу отладить это, у меня нет файлов журнала для просмотра? В чем может быть причина - я готов строить дикие предположения, так как я в отчаянии!

Использование HTML (удален JS):

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

Обновлять

Теперь я получаю эту ошибку: «Объект не поддерживает это свойство или метод». Я думаю, речь идет об этой линии.

<input type="button" value="Browse.." onclick="document.LittleShootApplet.openDialog('onFileDialogFile', 'onFileDialogCancel');">

Используя только версию HTML, я получаю ошибку JS!


person Abs    schedule 15.12.2009    source источник
comment
Апплет работает с Firefox? Если да: какие версии java-плагинов?   -  person Sven Lilienthal    schedule 15.12.2009
comment
Да, он работает с Firefox и даже с IE8. Моя версия JRE (SE) — 1.6, которая, я думаю, одинакова для java-плагинов, поскольку она поставляется в комплекте с JRE.   -  person Abs    schedule 15.12.2009
comment
@Pointy - что вы имеете в виду под тегом JavaScript? Вы имеете в виду, почему я использую JS для вызова апплета?? Мне нужно использовать его таким образом.   -  person Abs    schedule 15.12.2009
comment
Отображает ли он диалоговое окно, а затем вылетает или вылетает до того, как вы сможете увидеть диалоговое окно?   -  person Sven Lilienthal    schedule 15.12.2009
comment
Я открываю диалоговое окно с помощью IE, и все, что он показывает, это инициализация апплета, а затем происходит сбой.   -  person Abs    schedule 15.12.2009
comment
Вы пытались окружить строку openDialog(onFileDialogFile, onFileDialogCancel); в newFileDialog с попыткой {} catch (Exception e) {e.printStrackTrace()}, чтобы перехватить все исключения?   -  person Sven Lilienthal    schedule 15.12.2009
comment
Я не пробовал это, но я думаю, что это больше проблема IE6, и мне было интересно, не было ли мое использование этого класса правильно настроено для IE6, потому что он работает во всех других браузерах на Windows XP (кроме IE7 не имеет я понял). Я добавил свое использование.   -  person Abs    schedule 15.12.2009
comment
Это продолжение вашего предыдущего поста? stackoverflow.com/questions/1906999/   -  person Ascalonian    schedule 15.12.2009
comment
Не совсем, я нашел, что происходит, благодаря Мэтту Джослину. Мой браузер ничего не делал (даже не загружал апплет), но решение Мэтта показало, что браузер действительно дает сбой.   -  person Abs    schedule 15.12.2009
comment
Я также использую этот конкретный скрипт, и у меня тоже есть проблемы с ним. Вам случайно не нужно было подписывать апплет? Спасибо   -  person    schedule 17.12.2009
comment
Честно говоря, я отказался от этого, мне нужно что-то, что безопасно работает с IE, поэтому я выбрал менее эффективный пользовательский интерфейс.   -  person Abs    schedule 21.12.2009


Ответы (3)


Что произойдет, если вы сделаете несколько тестовых вызовов из самого апплета: чтобы сделать тот же вызов, к которому подключаются вызовы JS? Это тоже сбой?

Если он не падает, то я бы сказал, что вы нашли ошибку в самом браузере (или «LiveConnect» - как бы дети ни называли связь Java‹-> JS в наши дни..)

Если это так, то я бы предложил следующее:

  1. Упростите апплет, чтобы он содержал минимальное количество кода, чтобы он не вылетал: то же самое касается JSScript.

  2. Добейтесь сбоя - тогда вы застряли с отладкой программы Windows, я думаю:

http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

person monojohnny    schedule 15.12.2009

Откройте консоль Java и загрузите апплет. Перейдите в Панель управления> Java> дополнительно и включите отладку и консоль.

person Josh Kerr    schedule 15.12.2009
comment
Они включены, но когда я просматриваю консоль Java в браузере и происходит сбой, эта консоль забирается вместе с ней. Есть ли глобальная автономная консоль, которую я могу использовать?? - person Abs; 15.12.2009
comment
Я думаю, что если браузер умрет, окно тоже закроется, но вы все равно сможете просматривать файлы журналов/трассировки в каталоге Applicaiton Data/Sun/Java. - person Josh Kerr; 15.12.2009

Кажется, вы говорите, что простое открытие консоли Java также вызывает сбой?

Если это так, см. эту публикацию на веб-сайте Sun:

http://bugs.sun.com/view_bug.do?bug_id=6563344

person monojohnny    schedule 15.12.2009