script src nicht aufrufen wenn Opera verwendet wird
sunny
- javascript
0 Sven Rautenberg0 sunny0 Sven Rautenberg0 sunny
0 Thomas J.0 Antje Hofmann0 sunny
Hallo!
Eigentlich dachte ich, dass es kein Problem wäre, ein Script einfach nicht aufzurufen, wenn Opera verwendet wird, aber irgendwie krieg ich das jetzt nicht hin.
Ich habe ein externes Script wie folgt eingebunden:
<script language="JavaScript" src="xxx.js"></script>
Nun möchte ich, dass dieses Script nicht ausgeführt, wenn der User Opera verwendet.
Ich habs mit einer if-Bedingung versucht:
if(window.opera)
{
src=""
}
else
{
src = "xxx.js";
}
So funktioniert das natürlich nicht, weil das Ganze ja im Endeffekt script src="xxx.js" heißen muss. Ich hab dann auch noch versucht, es irgendwie in Variablen zu packen, aber dann stehts ja auch nicht im eröffnenden <script>. Hat da jemand einen Lösungsansatz für mich?
Ich glaub, ich denk schon wieder viel zu kompliziert ... !?
Liebe Grüße,
sunny
Moin!
Ich habe ein externes Script wie folgt eingebunden:
<script language="JavaScript" src="xxx.js"></script>
Nun möchte ich, dass dieses Script nicht ausgeführt, wenn der User Opera verwendet.
Ich habs mit einer if-Bedingung versucht:
if(window.opera)
{
src=""
}
else
{
src = "xxx.js";
}
Ich glaub, ich denk schon wieder viel zu kompliziert ... !?
Denke ich auch. Warum legst du die if-Abfrage nicht einfach um den auszuführenden Code drumherum. Daß dadurch die externe Datei geladen werden muß, ist vermutlich zu verschmerzen.
Und die zweite Frage wäre, warum Opera mal wieder von etwas ausgenommen wird?
- Sven Rautenberg
Moin!
Warum legst du die if-Abfrage nicht einfach um den auszuführenden Code drumherum. Daß dadurch die externe Datei geladen werden muß, ist vermutlich zu verschmerzen.
Du meinst also in der Datei, die aufgerufen wird:
if(window.opera)
{
}
else
{
hier das ganze Sript
}
Das hab ich auch versucht (die leere Klammer ist allerdings nicht korrekt, oder?), auf jeden Fall funktioniert es nicht, davon lässt sich Opera nicht beeindrucken. Ich bekomm nicht mal eine Fehlermeldung, das Script wird einfach ausgeführt.
Und die zweite Frage wäre, warum Opera mal wieder von etwas ausgenommen wird?
Na Du weißt schon, das ist die Seite mit dem Popup-Menü, das in Opera nicht funktioniert, leider. Dazu hatten wir ja schonmal einen Thread ;)
Ich hab ja eine alternative Navi, die aufgerufen wird, wenn Opera benutzt wird, allerdings sollte dann eben dieses Script nicht ausgeführt werden.
Lg,
sunny
Yo!
Du meinst also in der Datei, die aufgerufen wird:
if(window.opera)
{
}
else
{
hier das ganze Sript
}
Exakt.
Das hab ich auch versucht (die leere Klammer ist allerdings nicht korrekt, oder?), auf jeden Fall funktioniert es nicht, davon lässt sich Opera nicht beeindrucken. Ich bekomm nicht mal eine Fehlermeldung, das Script wird einfach ausgeführt.
Die leere Klammer ist korrekt. Und es funktioniert vermutlich deshalb nicht, weil Opera noch deine alte, im Cache befindliche Version benutzt (in der die Abfrage garnicht enthalten ist). Lösung: Javascript direkt in Opera nochmal aufrufen (dann wird der Quelltext gezeigt) und ggf. Reload veranlassen. Alternativ kannst du den Cache löschen.
Ich hab ja eine alternative Navi, die aufgerufen wird, wenn Opera benutzt wird, allerdings sollte dann eben dieses Script nicht ausgeführt werden.
Ok, alternativen sind in Ordnung. :)
- Sven Rautenberg
Yo!
Lösung: Javascript direkt in Opera nochmal aufrufen (dann wird der Quelltext gezeigt) und ggf. Reload veranlassen. Alternativ kannst du den Cache löschen.
Das hab ich ja gemacht, inzwischen ungefähr 12947473839 mal ;)
Hilft aber nix!
Kann es daran liegen, dass das Script extern ist? Eigentlich auch nicht, oder?
Lg,
sunny
Hallo!
Es funktioniert jetzt! Ich hatte im Quelltext der eigentlichen Seite auch noch eine Funktion, die mit einer if-Bedingung versehen werden musste, damit Opera sie nicht ausführt!
Trotzdem danke für die Hilfe!
Lg,
sunny
Hi,
versuche doch mal folgendes:
<script language="JavaScript" type="text/javascript">
<!--
if(!window.opera)
document.writeln('<\script language="JavaScript" type="text/javascript" src="xxx.js"></script>')
//-->
</script>
Damit sollte das Script nur bei Bedarf geladen werden.
Ist auch zu empfehlen für jahreszeitabhängige Scripts wie z. B. "Schneeflocken"-Scripts oder ähnliches.
Tag auch
Du meinst also in der Datei, die aufgerufen wird:
if(window.opera)
{
}
else
{
hier das ganze Sript
}
Alternative:
Falls Du eine Methode benutzt, die Opera nicht versteht, kannst Du auch direkt diese Methode abfragen - z.B. so:
if (document.getElementById("irgendwas").innerHTML)...
Opera kennt innerHTML nicht und wird demzufolge das script ignorieren.
Damit "erschlägst" auch gleichzeitig das Problem, daß Du Dein script umschreiben müßtest, sollte Opera in einer späteren Version das verstehen, woran Dein script im Moment scheitert.
Thomas J.
Hallo Thomas
Alternative:
Falls Du eine Methode benutzt, die Opera nicht versteht, kannst Du auch direkt diese Methode abfragen - z.B. so:
if (document.getElementById("irgendwas").innerHTML)...
Opera kennt innerHTML nicht und wird demzufolge das script ignorieren.
hier würde ich extrem vorsichtig sein. Opera ist ein Angeber und gibt gelegentlich vor etwas zu können, ohne es tatsächlich zu können :-)
Opera schließt man einfach mit
if (!window.opera)
aus. In Funktionen verwende ich oft
if (window.opera) return;
breche also die Funktion einfach ab.
Viele Grüße
Antje
Hallo!
Vielen Dank für Eure Tipps!
Opera schließt man einfach mit
if (!window.opera)
aus. In Funktionen verwende ich oft
if (window.opera) return;
breche also die Funktion einfach ab.
"return" ist eine gute Idee - gefällt mir besser als if {} und else {...} - ist bereits eingebaut!
Lg,
sunny