Weichenscript?!?
Hauke
- browser
0 Cheatah0 Stefan Muenz0 Kai Lahmann
Hi!
Auch wenn diese Frage bestimmt schon tausendmal gestellt wurde - ich weiß die Antwort immernoch nicht!
Also: Wie sollte ein Weichenscript am besten aussehen?
Ich hab's bis jetzt mit diesem hier probiert:
function UserAgent()
{
var browser = navigator.userAgent;
if(browser.indexOf("MSIE") != -1)
parent.inhalt.location.href = 'ie_nn6/main.html';
else
{
if(browser.indexOf("Mozilla/5.") != -1)
window.location.href = 'ie_nn6/main.html';
else
window.location.href = 'nn4/main.html';
}
}
Das ganze hat den Nachteil, dass es nicht überall zuverläßig läuft und dass diese "parent.inhalt.location.href" -Geschichte bei mir nicht mit NN6 und NN4 läuft :-(
Wie geht's besser?
Gleiche Seite, anderes Problem:
Die Indexseite sieht folgendermaßen aus.
<html>
<head>
<title>Titel</title>
<script language="JavaScript" src="files/scripte.js" type="text/javascript"></script>
</head>
<body onload="UserAgent()">
<frameset rows="*,0" border=0 frameborder=0 framespacing=0>
<frame src="hinweis.html" name="inhalt" noresize scrolling=no>
<frame src="leer.html" name="nullFrame" noresize scrolling=no>
</frameset>
</body>
</html>
Mein Problem ist, daß unter NN4 und IE5 (beides auf Windows Me) überhaupt gar nichts passiert. Weder die Funktion UserAgent() wird ausgeführt noch die Seite hinweis.html angezeigt!
Woran kann das liegen?
Vielen Dank für Eure Hilfe,
Hauke
Hi,
Auch wenn diese Frage bestimmt schon tausendmal gestellt wurde
sie wurde. Warum benutzt Du nicht die Archiv-Suche?
Also: Wie sollte ein Weichenscript am besten aussehen?
So wie zwischen der "begin"- und der "end"-Zeile:
--- begin ---
--- end ---
Browserweichen sind für Weicheier. Sie ergeben keinen Sinn.
var browser = navigator.userAgent;
Dieses Objekt liefert Dir nicht die Informationen, die Du brauchst.
Das ganze hat den Nachteil, dass es nicht überall zuverläßig läuft und dass diese "parent.inhalt.location.href" -Geschichte bei mir nicht mit NN6 und NN4 läuft :-(
"Läuft nicht" läuft nicht. Fehlerbeschreibung, bitte.
Wie geht's besser?
Weglassen. Vielleicht solltest Du erst mal ergründen, _warum_ Du überhaupt eine Browserweiche für nötig hälst, und dann diese Ursache beseitigen.
<body onload="UserAgent()">
<frameset rows="*,0" border=0 frameborder=0 framespacing=0>
Defektes HTML. Ent- oder weder, aber nicht <body> _und_ <frameset>.
</frameset>
Hier gehört ein <noframes>-Bereich vor(!).
Cheatah
Och Cheater, als du mir geholfen hast, dachte ich du hättest n Scheisstag, aber bist du immer so drauf?
Also:
<SCRIPT LANGUAGE="JavaScript">
function umleitung()
{
if (navigator.appName=="Microsoft Internet Explorer")
{
top.location.href = "index_ie.html"
}
if (navigator.appName=="Netscape")
{
top.location.href = "index_netscape.html"
}
}
</SCRIPT>
So sollte es funzen.
Salü,
Och Cheater, als du mir geholfen hast, dachte ich du hättest n Scheisstag, aber bist du immer so drauf?
Ich kann ihn manchmal verstehen: Es kommen immer wieder die gleichen Fragen, die zig mal im Achriv stehen. Angablich wurde dort schon immer nachgeschaut und man konnte trotzdem keine Lösung finden. Und das beste ist: Lösungen sind da, aber anscheinend nicht die, die man hören will.
So sollte es funzen.
Ja, aber was ist Mozilla-Nutzern oder die Opera-Fans? Also so schon mal nicht ;)
Die Frage ist, weshalb man eine Browserweiche benötigt. Diese Frage hat Cheatah ja schon gestellt. Benötigst Du sie, weil sonst Deine Seite schei**e aussieht? Dann machst Du was mit der HTML-Programmierung falsch. Benötigst Du sie, weil Du _bewußt_ Technologien auf Deinen Seiten einsetzt, die kein anderer Browser beherscht ist dies "ansatzweise" noch zu entschuldigen ;)
Wenn der zweite der Fall in Kraft tritt, solltest Du doch einfach die Eigenschaften/Technologien, die Du verwendest zur Überprüfung heran ziehen. Bsp all-Objekt beim IE.
Viele Grüße...
Alex :)
Hallo,
Ich kann ihn manchmal verstehen: Es kommen immer wieder die gleichen Fragen, die zig mal im Achriv stehen. Angablich wurde dort schon immer nachgeschaut und man konnte trotzdem keine Lösung finden. Und das beste ist: Lösungen sind da, aber anscheinend nicht die, die man hören will.
Nein, es sind keine fertigen Lösungen da. Man müsste ja eventuell den Lösungsansatz nehmen und auf das eigene Problem zurechtbiegen - und das ist doch nun wirklich zuviel verlangt.
Gruß Markus
Hi,
Och Cheater,
ich cheate in der Regel nicht.
als du mir geholfen hast, dachte ich du hättest n Scheisstag, aber bist du immer so drauf?
Ja. Ich stehe immer auf dem Standpunkt, dem Fragesteller bestmöglich zu helfen. Und wenn er nun mal etwas vorhat, was aus Profi- bzw. Expertensicht Quatsch ist, dann rate ich ihm davon ab, weil ihm damit mehr geholfen ist als mit einem Lösungsansatz.
Ein Lösungsansatz ist übrigens noch um einiges besser, als eine fertige Lösung: Erstens fällt bei letzterem der Lerneffekt fast vollständig weg, zweitens merkt der Delinquent nicht, wenn eine Lösung suboptimal oder gar fehlerhaft ist, wie Deine etwa.
<SCRIPT LANGUAGE="JavaScript">
[...]
if (navigator.appName=="Microsoft Internet Explorer")
[...]
Mit sowas ist Leuten leider nicht geholfen - insbesondere deshalb, weil sie zunächst _glauben_, das Problem sei gelöst.
Cheatah
Hallo Hauke,
Also: Wie sollte ein Weichenscript am besten aussehen?
navigator.userAgent ist wie Cheatah schon anmerkt nicht sonderlich geeignet. Besser ist das Abfragen "typischer" Faehigkeiten. Ein Beispiel findest du in der DHTML-Bibliothek von SELFHTML:
http://selfhtml.teamone.de/dhtml/beispiele/dhtml_bibliothek.htm
viele Gruesse
Stefan Muenz
hi
wenn ich es richtig sehe, willst du nur NN4 von aktuellen Browsern trennen. Daher schlage ich vor - wenn es denn wirklich nicht ohne geht - eine Intro-Seite mit Meta-Refresh nach 5 sec zu bauen - manuellen Link nicht vergessen! Außerdem kommt in die Seite ein if(document.layers)location.href="nn4.html". Diese Abfrage ist der wohl sicherste Weg NN4 zu erkennen. Wer in NN4 JavaScript abschaltet hat Layouttechnisch eh verlohren, da fällt eine völlig entstellte Page mehr auch nimma auf. Einen anderen Browser, der document.layers kennt, gibt es nicht.
Zu anderen Browsern brauchst du nicht zu fragen: so einen einfachen Weg einen Browser zu erkennen gibt es nicht für andere Browser.
Grüße aus Lüneburg
Kai