Browserabfrage
Dennis
- javascript
0 Andreas-Lindig0 Dennis0 Andreas-Lindig0 Dennis
0 Ingo Turski- css
0 Dennis
0 asdf0 Dennis
Hallo!
Was ich realisieren möchte, ist für die Profis unter uns bestimmt ganz leicht. Ein Jeder kennt das Problem mit der Kompatiblität von Netscape und Co.
Da meine Seite ein paar Features (z.B. Filter) enthält, welche nur vom IE interpretiert werden, möchte ich für die Nicht-IE-User eine Hinweismeldung ausgeben.
So stelle ich mir das vor:
<script language="javascript" type="text/javascript">
<!--
if (Browser des Users == Netscape 4.x)
lade Seite "netscape.html"
else if (Browser des Users == Opera)
lade Seite "opera.html"
else if (Browser des Users == IE 6.x)
lade Seite "start.html"
else
lade Seite "rest.html"
-->
</script>
Wie kann ich das jetzt mit Javascript realisieren? in SelfHTML hab ich da kein Beispiel gefunden, wie ich den Browsertyp auslesen kann.
(Das oben ist natürlich kein Javascript sondern einfaches Deutsch)
Bin wirklich für jede Hilfe dankbar.
MfG, Dennis.
Hallo,
Wie kann ich das jetzt mit Javascript realisieren? in SelfHTML hab ich da kein Beispiel gefunden, wie ich den Browsertyp auslesen kann.
obwohl es da sogar extra ein fertiges Script zu diesem Thema gibt. Kuck mal im DHTML-Kapitel.
(Das oben ist natürlich kein Javascript sondern einfaches Deutsch)
achso!
Gruß, Andreas
Hallo!
Wie kann ich das jetzt mit Javascript realisieren? in SelfHTML hab ich da kein Beispiel gefunden, wie ich den Browsertyp auslesen kann.
obwohl es da sogar extra ein fertiges Script zu diesem Thema gibt. Kuck mal im DHTML-Kapitel.
Meinst du das hier http://selfhtml.teamone.de/dhtml/beispiele/dhtml_bibliothek.htm? Da werd ich nicht so ganz schlau draus. Könntest du mir das noch mal ein bisschen erklären?
(Das oben ist natürlich kein Javascript sondern einfaches Deutsch)
achso!
Ja, man merkt sonst nicht, oder? *bg*
MfG, Dennis.
Da werd ich nicht so ganz schlau draus. Könntest du mir das noch mal ein bisschen erklären?
ist eigentlich alles erklärt. Erfordert natürlich gründliches Vorlesen. Du brauchst eigentlich nur diesen Teil hier:
var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;
function DHTML_init() {
// wenn es ein Opera ist bekommt OP den Wert 1
if (window.opera) {
OP = 1;
}
// wenn er das W3C-Modell kennt (Mozilla, IE ab 5) bekommt DOM den Wert 1
if(document.getElementById) {
DOM = 1;
}
// wenn er ein IE ist, bekommt MS den Wert 1
if(document.all && !OP) {
MS = 1;
}
// wenn er ein Netscape 4 ist bekommt NS den Wert 1
if (window.netscape && window.screen && !DOM && !OP){
NS = 1;
}
}
DHTML_init();
Gruß, Andreas
Hallo!
ist eigentlich alles erklärt. Erfordert natürlich gründliches Vorlesen.
Das hab ich eigentlich schon gemacht.
Danke, was du da jetzt rausgefiltert hast, ist mir schon klar geworden. Und das packe ich jetzt in ein Javascript in den Header der Seite?
Was mir noch nicht ganz klar geworden ist, ist, wie ich das ganze "abrufe". Vielleicht in etwa so?
if (MS == 1)
self.location.href('iehinweis.htm') <- stimmt das?
muss ich da jetzt auch noch else hinschreiben?
oder etwas so fortfahren:
else if (NS == 1)
self.location.href('netscape4hinweis.htm')
<-- usw. -->
Würde das jetzt rein theoretisch funktionieren?
MfG, Dennis.
Und das packe ich jetzt in ein Javascript in den Header der Seite?
genau. Der Head-Bereich wird immer als erstes geladen da kann man dann gleich umleiten.
Was mir noch nicht ganz klar geworden ist, ist, wie ich das ganze "abrufe". Vielleicht in etwa so?
if (MS == 1)
ja, 1 und 0 hat der Meister allerdings verwendet, damit man etwas schreiben sparen kann:
if(MS)
self.location.href('iehinweis.htm') <- stimmt das?
Du mußt nur die richtige Syntax verwenden, steht auch im Selfhtml unter location.href:
self.location.href = 'iehinweis.htm'
arbeite alle Brauser ab und schreib zuguterletzt in den Body die Seite, die Leute kriegen, die kein Javascript haben - die sind sehr wichtig. Ich bin öfters ohne JS unterwegs.
Gruß, Andreas
Hallo!
So, jetzt hab ich mich da nochmal drangesetzt und folgendes ist bei rausgekommen. Zuerst das Script, das du mir da zusammen gestellt hast beginnend mit <script ...> <!-- Dann das Script --></script>.
Und dann kommt mein Script:
<script language="javascript" type="text/javascript>
<!--
if (OP) {
self.location.href = 'ophinweis.html' <- Wenn Browser Opera
}
else if (DOM) {
self.location.href = 'mozillahinweis.html' <- Wenn Browser Mozilla
}
else if(MS) {
self.location.href = 'iehinweis.html' <- Wenn Browser IE
}
else if(NS){
self.location.href = 'nshinweis.html' <- Wenn Browser Netscape 4.x
}
else {
self.location.href = 'unbekannt.html' <- Für alle anderen Browser
}
-->
</script>
Werden da (in deinem Scipt) auch Netscape 5, 6 und 7 berücksichtigt?
arbeite alle Brauser ab und schreib zuguterletzt in den Body die Seite, die Leute kriegen, die kein Javascript haben - die sind sehr wichtig. Ich bin öfters ohne JS unterwegs.
<body>
Diese Seite verwendet Javascript. Wenn Sie dieses aktiviert haben, werden Sie automatisch weitergeleitet, ansonsten klicken Sie unten Bitte auf den Browser, welchen Sie verwenden.
<a href="iehinweis.html">Internetexplorer</a>
<!-- uws. -->
</body>
So ok?
MfG, Dennis.
Guten Morgen Dennis!
Hier noch eine Anmerkung, weil Du mit Filtern arbeitest:
der MAC Internet Explorer kann - soweit ich weiss - keine Filter, das muss in der Weiche natürlich auch berücksichtigt werden:
var op = (window.opera) ? 1:0;
var ns = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
var dom = (document.getElementById) ? 1:0;
//
var ua = navigator.userAgent.toLowerCase();
var mc = ua.indexOf('mac',0) != -1;
//
if (ie && !op && !mc)
führe diese Anweisung aus ...
else
führe diese Anweisung aus ...
Viel Spass noch
Mfg Ruben
Hallo ,
ja etwa so. Du mußt nur die Reihenfolge von DOM und MS vertauschen, weil der IE eben auch das DOM kennt. Sonst wird bei der Weiche nach DOM auch der IE umgeleitet.
Also:
if(MS)
...
else if(DOM)
...
denk nur in Deinem Body-Hinweis daran, nicht wieder auf JavaScript Seiten zu verlinken. Da können die Leute dann nichts mit anfangen.
Gruß, Andreas
ja etwa so. Du mußt nur die Reihenfolge von DOM und MS vertauschen, weil der IE eben auch das DOM kennt. Sonst wird bei der Weiche nach DOM auch der IE umgeleitet.
Besser für die IE-Erkennung Conditional Comments verwenden, sonst erwischt es auchden Konqueror.
Stefan
Hallo!
Besser für die IE-Erkennung Conditional Comments verwenden, sonst erwischt es auchden Konqueror.
Was ist das denn für ein Browser? Hab ich ja noch nie gehört.
Ich habe meine HP bei 1und1 - da kann ich genau sehen, mit welchen Browsern auf meine HOmepage zugegriffen wurde und so ein Konqueror war noch nie dabei.
MfG, Dennis.
Hi,
Ich habe meine HP bei 1und1 - da kann ich genau sehen, mit welchen Browsern auf meine HOmepage zugegriffen wurde und so ein Konqueror war noch nie dabei.
wenn Du die 1&1 Statistik meinst: da irrst Du. Zum einen werden längst nicht alle Browser erkannt und zum anderen bekommst Du ja auch nur eine Übersicht der häufigsten Browser zu Gesicht. Exoten fallen da unter den Tisch... es sei denn, Du wertest die Logs selbst aus.
freundliche Grüße
Ingo
Hallo!
wenn Du die 1&1 Statistik meinst: da irrst Du. Zum einen werden längst nicht alle Browser erkannt und zum anderen bekommst Du ja auch nur eine Übersicht der häufigsten Browser zu Gesicht. Exoten fallen da unter den Tisch... es sei denn, Du wertest die Logs selbst aus.
Doch, ich krieg da auf Wunsch alle angezeigt, ja, es stimm, mache werden schon mal nicht ausgewerte, aber ich nehme nicht rücksicht auf irgendwelche Exoten *g*
MfG, Dennis.
Hi,
Doch, ich krieg da auf Wunsch alle angezeigt, ja, es stimm, mache werden schon mal nicht ausgewerte, aber ich nehme nicht rücksicht auf irgendwelche Exoten *g*
also ich bekam immer nur die 10 mit den häufigsten Zugriffen. D.h. noch nicht einmal einen prozentualen Anteil der Besucher. Mal ein Beispiel..
1&1:
1 MSIE 6.0; Windows NT 5.1 678...
2 Microsoft Internet Explorer 5.0 441...
3 Netscape 5.0 185...
4 MSIE 6.0; Windows NT 5.0 171...
5 MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322 101...
6 MSIE 6.0; Windows 98 65...
7 MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705 40..
8 MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5; .NET CLR 1.1.4322 21...
9 ia_archiver 21...
10 MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322 20...
eigene Auswertung:
[Browser: 502]
327* MSIE 6
47* MSIE 5.5
28* Mozilla
26* MSIE 5
21* Opera (20* Opera 7.x)
15* Firefox/Firebird
10* Netscape 7.x
5* MSIE Mac
4* Safari
3* MSIE 4
2* Konqueror
1* Netscape 6.x
1* Netscape 4.x
7* unbekannt (-> andere Kennungen)
5* keine Browserkennung
1* OfflineReader (1* MSIECrawler)
2* W3C Validator
[Robots: 40]
19* Inktomi's Web Robot
10* GoogleBot
4* grub.org clientRobots
2* alexa Robot
1* AltaVista Robot
4* andere Robots
Insbesondere die Angabe Netscape 5.0 sollte Dich eigentlich stutzig machen...
Gruß
Ingo
Hallo!
Erst mal ein ganz dickes Dankeschön an euch alle, die ihr mir geholfen habt. Wenn ich das jetzt öffne, komme ich genau auf die gedachte Seite - hab nur IE, konnte Rest noch nicht ausprobieren. Denke aber das tuts auch alles.
Jezt noch eine kleine Frage; ich habe da jetzt in der .js-Datei:
// wenn er ein Netscape 4 ist bekommt NS den Wert 1
if (window.netscape && window.screen && !DOM && !OP){
NS = 1;
}
Damit werden laut meinen "Lehrern" die Netscape 4.x ausgefiltert. Wie ist das mit Netscape 5 (gibts das?), 6 und 7? Wo werden die rausgefiltert? Werden die gar nicht berücksichtigt? (meine Javascript datei seht ihr hier:</my/?t=73270&m=421827>)
Oder gehörten die zu denen, die das W3C-Modell kennen?
MfG, Dennis.
Wie ist das mit Netscape 5 (gibts das?), 6 und 7? Wo werden die rausgefiltert? [...] Oder gehörten die zu denen, die das W3C-Modell kennen?
genau. N6 ist intern N5. Die 6 war ein Marketing-Gag, um den IE zu überholen. N6 und N7 fußen auf dem Mozilla, naja N6 auf einer unausgereiften Version.
Gruß, Andreas
Hallo!
genau. N6 ist intern N5. Die 6 war ein Marketing-Gag, um den IE zu überholen. N6 und N7 fußen auf dem Mozilla, naja N6 auf einer unausgereiften Version.
Achso, die werden also bei den W3C Browsern mit ausgefiltert.
und thanks für die schnelle Antwort. *g*
MfG, Dennis.
Hi,
warum so umständlich?
wenn Du wirklich nur sicher den IE von den anderen Browsern abgrenzen willst, kannst Du doch viel besser conditional comments verwenden. Du gibst den Hinweistext sichtbar für alle aus und setzt ihn in einer Anweisung für den IE auf display:none.
freundliche Grüße
Ingo
Hallo!
wenn Du wirklich nur sicher den IE von den anderen Browsern abgrenzen willst, kannst Du doch viel besser conditional comments verwenden. Du gibst den Hinweistext sichtbar für alle aus und setzt ihn in einer Anweisung für den IE auf display:none.
Und ich versteh nur Bahnhof - hab aber mittlerweile schon eien funktionierende Lösung.
MfG, Dennis.
Was ich realisieren möchte, ist für die Profis unter uns bestimmt ganz leicht.
Profis machen so etwas gar nicht.
Ein Jeder kennt das Problem mit der Kompatiblität von Netscape und Co.
Nein.
Da meine Seite ein paar Features (z.B. Filter) enthält, welche nur vom IE interpretiert werden, möchte ich für die Nicht-IE-User eine Hinweismeldung ausgeben.
"Hallo, leider wirst du keine Fade-In- und Fade-Out-Effekte sehen. Ist echt schade, du verpasst wirklich das allerbeste auf dieser Seite."
Hallo!
Da meine Seite ein paar Features (z.B. Filter) enthält, welche nur vom IE interpretiert werden, möchte ich für die Nicht-IE-User eine Hinweismeldung ausgeben.
"Hallo, leider wirst du keine Fade-In- und Fade-Out-Effekte sehen. Ist echt schade, du verpasst wirklich das allerbeste auf dieser Seite."
Ich versteh da jetzt nur Bahnhof. Was meinst du denn damit? Von wo ist dieses Zitat?
MfG, Dennis.