<noscript>-Problem mit Netscape und APPLET
Kurt Trinko
- javascript
Guten Abend!
ich versuche mit einem javascript programmgesteuert(d.h.je nach cookie-settings mit unterschiedliche applet-parametern) mittels document.write dynamisch ein Java-Applet zu starten. das klappt auch prima.
nur:
falls javascript-deaktiviert sein sollte, soll im <noscript></noscript>-Bereich ein applet mit standard-parametern aufgerufen werden.
mein Problem:
funktioniert im internet-explorer prima, im Netscape 4.7 (deutsch) wird jedoch bei aktiviertem javascript das applet 2 mal aufgerufen: d.h. der noscript bereich wird auf alle fälle verwertet.
eine demo steht online unter:
http://www.rg16.asn-wien.ac.at/teststuff/navi.htm
vermutlich habe ich irgendwo einen ganz grauslichen anfänger-fehler gemacht, ich finde diesen leider nur nicht.
meine bitte an alle profis: werft mal einen blick auf die html-seite und gebt mir einen tipp
herzlichen dank
kurt
Hallo Kurt,
auf den ersten Blick ist kein Fehler zu sehen. Aber das Applet wird doch im selben Fenster geladen, richtig?
Da es ja auch ein Browserfehler sein kann, würde ich es einfach so machen:
HTML-Datei:
<html>
<head>
<script src="JavascriptDateiMitCookieAuswertung.js" ..></script>
</head>
<body ... onload="functionInJavascriptDatei();">
<applet ..>
<standardparams>
</applet>
</body>
</html>
Javascript-Datei:
function cookieAuswertung_usw () {
neuHtmlText = '<html>....';
neuHtmlText += '....';
neuHtmlText += '<applet....';
neuHtmlText += '<spezparams....';
.
.
.
document.open();
document.write(neuHtmlText);
document.close();
}
Ist Javascript abgeschaltet, dann geht onload mit Sicherheit nicht, also wird die normale HTML-Seite mit Applet und Standard-Params angezeigt.
Ist Javascript aktiviert, wird die Seite erst angezeigt, wenn onload abgearbeitet ist. Da aber mit document.open/write/close der alte Inhalt mit neuem Inhalt überschrieben wurde, sollte nur noch das speziell parametrisierte Applet kommen.
Gruß,
Andreas
Hallo Andreas!
Danke für den Tipp, das Problem bei ihrer Lösung ist in meinem speziellen Fall nur, dass ich onload schon verbraucht habe, weil dort eine spezielle JS-Variable zur Kommunikation mit dem Applet initalisert wird. Aber grundsätzlich ist natürlich eine elegante Lösung.
Kurt
Ich habe jetzt aber eine "quick and dirty"-Lösung gefunden: Im Noscript-Bereich steht eine meta-Anweisung die eine Seite mit Standard-Applet nachlädt, wenn JS deaktiviert ist.
Ich weiß, eine meta-Anweisung dürfte nur im head stehen, aber zumindest mit IE und Netscape funktionierts....
Moin!
Danke für den Tipp, das Problem bei ihrer Lösung ist in meinem speziellen Fall nur, dass ich onload schon verbraucht habe, weil dort eine spezielle JS-Variable zur Kommunikation mit dem Applet initalisert wird. Aber grundsätzlich ist natürlich eine elegante Lösung.
Verstehe ich nicht? Verbraucht? onLoad führt doch beliebig viele Anweidungen aus:
<body onload="variable=23;funktion('wert');anderefunktion('neuerwert');variable2=42;tuwas();">
- Sven Rautenberg