spezielle Browserabfrage
Markus Maute
- javascript
Hallo,
ihr seit meine letzte Rettung (hoffentlich)!
Zu meinem Problem:
Ich habe eine Browserabfrage programmiert (siehe unten).
Sie soll nun um folgende Funktion erweitert werden.
Wenn jemand mit Netscape bis Version 6.x auf die Seite kommt
möchte ich ihn auf eine andere Seite leiten als Netscape 7.0 User.
Also kurz und primitiv:
if Netscape bis 6.x gehe zu 1.html
if Netscape 7.0 gehe zu 2.html
der Rest (IE, Mozilla und Opera) soll so bleiben.
Schon mal 1000 Dank für Eure Hilfe
Markus
hier das Script:
<!--
switch(navigator.appName)
{
case "Microsof Internet Explorer":
document.location.href="index.html";
break;
case "Netscape":
document.location.href="index_2.html";
break;
case "Opera":
document.location.href="index_2.html";
break;
default:
break;
-->
Hallo Markus,
Wenn jemand mit Netscape bis Version 6.x auf die Seite kommt
möchte ich ihn auf eine andere Seite leiten als Netscape 7.0 User.
die beiden Netscape Versionen kann man z.B. anhand des Objektes 'atob' unterscheiden.
var NS=(window.atob) ? "NS7" : "NS6";
Gruß Gunther
Hallo Gunther,
wie baue ich das
----------------------------------------
(var NS=(window.atob) ? "NS7" : "NS6";
----------------------------------------
in das Script ein?
Bin wirklich für jede Hilfe dankbar!
THX
Markus
Hier noch mal mein Script:
switch(navigator.appName)
{
case "Microsof Internet Explorer":
document.location.href="index.html";
break;
case "Netscape":
document.location.href="index_2.html";
break;
case "Opera":
document.location.href="index_2.html";
break;
default:
break;
-->
Hi,
switch(navigator.appName)
{
case "Microsof Internet Explorer":
document.location.href="index.html";
break;
case "Netscape":
document.location.href="index_2.html";
break;
case "Opera":
document.location.href="index_2.html";
break;
default:
break;
eine kleine Anmerkung von mir:
besser ist es, nicht nach navigator.appName zu unterscheiden, da sich heutzutage einige Browser auch als andere ausgeben können (Opera, Konqueror, ...)
Besser ist es nach Objekten zu unterscheiden.
window.atob ist da schon eine gute möglichkeit.
anders ging es auch mit
var browser = (window.GetAttention) ? "NS6" : "NS7";
oder über das navigator objekt:
da gibts glaub ich so was hier:
navigator.productSub
das liefert eine Zahl (nämlich das Datum der GeckoEngine) zurück. NS 7 hat demnach eine höhere Zahl als NS6-->
if(navigator.productSub < ...)
musst nur rausfinden, welche Zahl da bei NS 7.0 steht!
Hi Markus,
if Netscape bis 6.x gehe zu 1.html
if Netscape 7.0 gehe zu 2.html
der Rest (IE, Mozilla und Opera) soll so bleiben.
dir ist bekannt, dass Netscape >4 in Wahrheit ein Mozilla ist? Was soll das eigentlich bringen, worin unterscheiden sich die Seiten, auf die umgeleitet werden soll?
Grüße,
Roland
Hi,
NS 6 ist schon was anderes als NS 7.
NS 7 unterstützt zB andere JS-Objekte, die auch der NS4 versteht.
zB: window.atob(), window.find(), ...
NS 6 kennt zB winodw.GetAttention();
Auch in der Darstellung gibts Unterschiede, wie ich selbst erfahren habe.
Hab zB ein DHTML-Skript, das unter allen gängigen Browser (MSIE 4-6, Opera 5-7, NS 4 UND 7) läuft, aber eben NICHT unter NS 6.
Schon komisch!!
Mozilla 0.9 / NS 6 ist schon irgendwie scheiße!
Christian
Hi Christian,
NS 6 ist schon was anderes als NS 7.
Ich weiß, eine Steißgeburt ;-)
NS 7 unterstützt zB andere JS-Objekte
Das entzieht sich meiner Kenntnis.
Auch in der Darstellung gibts Unterschiede, wie ich selbst erfahren habe.
Kann ich bestätigen.
Mozilla 0.9 / NS 6 ist schon irgendwie scheiße!
Das unterschreibe ich glatt. Allerdings ist die Umleitung trotzdem unnötig, weil man die Existenz der eingesetzten Methoden besser direkt im Script prüft.
if bla() {
bla();
}
Grüße,
Roland
Das unterschreibe ich glatt. Allerdings ist die Umleitung trotzdem unnötig, weil man die Existenz der eingesetzten Methoden besser direkt im Script prüft.
if bla() {
bla();
}
Aber nicht so.
if(typeof bla != 'undefined') bla();
oder halt auf 'function' prüfen.
Struppi.
Hi Struppi,
[...] eingesetzten Methoden besser direkt im Script prüft.
if bla() {
bla();
}Aber nicht so.
Das war absehbar...
if(typeof bla != 'undefined') bla();
...denn ich habe im letzten Jahr ca. 2 Zeilen Javascript geschrieben. ;-)
Grüße,
Roland
Hallo Roland,
also ich habe ein Frameset (siehe unten)
und Netscape 4.7 zerschlägt alles!
IE, Mozilla, Opera, Netscape 7.0 habe ich schon "unter Kontrolle"
aber Netscape 4.7 raubt mir alle Nerven!
Please Help ;-)
dir ist bekannt, dass Netscape >4 in Wahrheit ein Mozilla ist? Was soll das eigentlich bringen, worin unterscheiden sich die Seiten, auf die umgeleitet werden soll?
Grüße,
Roland
-----------------------------------------------------------------
<frameset rows="*,417,*" border=0 frameborder=0 framespacing=0>
<frame name="top" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frameset cols="*,760,*" border=0 frameborder=0 framespacing=0>
<frameset rows="88,*,295" border=0 frameborder=0 framespacing=0>
<frame name="n_left" src="n_left.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="left" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="a_left" src="a_left.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
<frame name="bymaute" src="home.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frameset rows="88,*,295" border=0 frameborder=0 framespacing=0>
<frame name="n_right" src="n_right.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="right" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="a_right" src="a_right.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
</frameset>
<frame name="bottom" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
Hi Markus,
also ich habe ein Frameset (siehe unten)
um Himmels Willen, ich weiß gar nicht mehr, wie man das definiert :-/
und Netscape 4.7 zerschlägt alles!
Was passiert denn? Treten Fehler auf, wenn du die Frameseiten einzeln aufrufst? Dann liegt es nicht am Frameset, dessen Code du übrigens mit http://validator.w3.org/ prüfen kannst.
IE, Mozilla, Opera, Netscape 7.0 habe ich schon "unter Kontrolle"
Kompliment.
aber Netscape 4.7 raubt mir alle Nerven!
*g* Bestimmt melden sich gleich NS4-Kenner mit guten Ratschlägen.
Grüße,
Roland
case "Microsof Internet Explorer":
document.location.href="index.html";
break;
case "Netscape":
document.location.href="index_2.html";
break;
case "Opera":
document.location.href="index_2.html";
break;
default:
break;
Was unterschiedet denn index und index_2?
Warum kommen besucher mit einem anderen Browser gar nicht weiter?
In der Regel sind Browserweichen nur dazu da Unzulänglichkeiten des Weddesigners zu kaschieren. Sind deine Seiten valide http://validator.w3.org/ dann werden sie in aller Regel in allen modernen Browsern gleich gut angezeigt. D.H. sauberer HTML/CSS Code erspart dir eine Menge Arbeit, da du dann (wie eigentlich die meisten) nur noch eine Version deiner Seiten brauchst.
Struppi.
o.k.
nochmal eine Zusammenfassung meines Problems:
Ich bin Designer und lege viel wert auf das Design ;-)
Aus diesem Grund habe ich mich für ein Frameset (siehe unten) enschieden.
Das Frameset ist o.k. aber Netscape 4.7 stellt die Frames anderst da als:
Netscape 7.0, IE, Opera, Mozilla
Ich muss also eine Browserabfrage machen die, die unterschiedlichen
Browser (Netscape Versionen) auf die entsprechende Seite weiterleitet.
Leider sind meine Java Script Kenntnisse eher rar ;-(
und ich komme nicht weiter.
Hier ist meine bisherige Browserabfrage:
-----------------------------------------------------------------
<!--
switch(navigator.appName)
{
case "Internet Explorer":
document.location.href="index.html";
break;
case "Netscape":
document.location.href="index_2.html";
break;
case "Mozilla":
document.location.href="index_2.html";
break;
case "Opera":
document.location.href="index_2.html";
break;
default:
break;
}
-->
-----------------------------------------------------------------
und hier das Frameset:
-----------------------------------------------------------------
<frameset rows="*,417,*" border=0 frameborder=0 framespacing=0>
<frame name="top" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frameset cols="*,760,*" border=0 frameborder=0 framespacing=0>
<frameset rows="88,*,295" border=0 frameborder=0 framespacing=0>
<frame name="n_left" src="n_left.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="left" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="a_left" src="a_left.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
<frame name="bymaute" src="home.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frameset rows="88,*,295" border=0 frameborder=0 framespacing=0>
<frame name="n_right" src="n_right.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="right" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
<frame name="a_right" src="a_right.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
</frameset>
<frame name="bottom" src="frame.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
THX
Markus
o.k.
nochmal eine Zusammenfassung meines Problems:Ich bin Designer und lege viel wert auf das Design ;-)
Aus diesem Grund habe ich mich für ein Frameset (siehe unten) enschieden.
Das Frameset ist o.k. aber Netscape 4.7 stellt die Frames anderst da als:
Netscape 7.0, IE, Opera, MozillaIch muss also eine Browserabfrage machen die, die unterschiedlichen
Browser (Netscape Versionen) auf die entsprechende Seite weiterleitet.
Netscape 4 (spätere nicht mehr?) stellt bekanntermaßen Frames nicht pixelgenau dar insofern ist eine Umleitung überflüssig, da egal welche Anstregung du unternimmst, du wirst keine Pixelgenauen Frames hinbekommen, du kannst einen Workaround machen, der wird aber nur bei dir und mit deiner Auflösung funktionieren, aber das kann sich nach dem Vollmond wieder ändern.
'Designer' die für's Internet pixeldesign machen, sind keine Webdesigner und sollten lieber weiter Papierlayout entwerfen. Webdesign ist anders als Papierdesign.
Struppi.
'Designer' die für's Internet pixeldesign machen, sind keine Webdesigner und sollten lieber weiter Papierlayout entwerfen. Webdesign ist anders als Papierdesign.
Struppi.
Danke! ;-(
Eine Lösung wäre mir lieber gewesen als Sprüche.
Nichts für ungut!
Markus
'Designer' die für's Internet pixeldesign machen, sind keine Webdesigner und sollten lieber weiter Papierlayout entwerfen. Webdesign ist anders als Papierdesign.
Struppi.
Danke! ;-(
Eine Lösung wäre mir lieber gewesen als Sprüche.
Nichts für ungut!
Ich bitte dich!
Ich sagte:
Netscape 4 (spätere nicht mehr?) stellt bekanntermaßen Frames nicht pixelgenau dar insofern ist eine Umleitung überflüssig, da egal welche Anstregung du unternimmst, du wirst keine Pixelgenauen Frames hinbekommen, du kannst einen Workaround machen, der wird aber nur bei dir und mit deiner Auflösung funktionieren, aber das kann sich nach dem Vollmond wieder ändern.
D.H. es gibt keine Lösung, auch wenn du es nicht wahr haben willst.
Struppi.
Hi Markus,
Ich muss also eine Browserabfrage machen die, die unterschiedlichen
Browser (Netscape Versionen) auf die entsprechende Seite weiterleitet.
if (document.layers) {
-> Code nur für Netscape 4
}
Einige Fragen habe ich noch:
Grüße,
Roland