Могло случиться так, что Вы входите в систему от одного субдомена (sub1.domain.com) и затем пытаетесь выйти из системы от другого субдомена (www.domain.com).
Я использую таймер, который сбрасывается и проверяет несколько раз, прежде чем сработает.
<script language="text/javascript" defer>
function performAppletCode(count) {
var applet = document.getElementById('MyApplet');
if (!applet.myMethod && count > 0) {
setTimeout( function() { performAppletCode( --count ); }, 2000 );
}
else if (applet.myMethod) {
// use the applet for something
}
else {
alert( 'applet failed to load' );
}
}
performAppletCode( 10 );
</script>
Обратите внимание, что это предполагает, что апплет будет работать в Safari. У меня было несколько случаев, когда апплет требовал Java 6, который просто зависал в Safari даже с кодом, подобным приведенному выше. Я решил выполнять обнаружение браузера на сервере и перенаправлять пользователя на страницу с ошибкой, когда браузер не поддерживает апплет.
У меня был аналогичный некоторое время назад и добавление MAYSCRIPT к тегу апплета решило мою проблему.
Взгляните на эту страницу: http://www.htmlcodetutorial.com/applets/_APPLET_MAYSCRIPT.html
Надеюсь, это поможет!