BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Webdesign (http://www.black-board.net/board.php?boardid=19)
--- Browser Erkennung (http://www.black-board.net/thread.php?threadid=11361)


Geschrieben von CrayX am 01.04.2003 um 19:52:

  Browser Erkennung

Ich wollte mal wissen ob die Möglichkeit besteht, das man eine Webseite erstellt, wo die 1. Hauptseite merkt, welchen Browser der User benutzt, und dann automatisch zu der für diesen Browser ertsellten Website weiterleitet???Ich will das machen, ich hab nur keine idee wie ich das machen könnte. Mit welcher Sprache könnte ich das machen?Und kennt ihr vielleicht ein paar Seiten zum Thema?
MFG


CrayX



Geschrieben von KptSpaltnagel am 01.04.2003 um 20:40:

  RE: Browser Erkennung

Hallo CrayX,

da gibt es einige Möglichkeiten. Browser kann man mit JavaScript erkennen, besser aber noch mit Serverseitigen Sprachen, wie perl oder (denke ich doch) PHP.

Wie das genau funktioniert, da gibt es zahlreiche Möglichkeiten. SChau dich am besten mal bei Google oder gleich bei einem Tut wie SelfHTML um.

Prinzipiell sollte dir aber klar sein, dass du dir da einiges aufbürgst, für jeden Browser die Seite anders zu gestalten. Versuche lieber, deine Seite so erstellen, dass alle Browser bedient werden können. Es gibt auch verschiedene Tricks innerhalb einer jeden Seite bestimmte Elemente per JavaScript- oder CSS-Weichen für bestimmte Browser deaktivieren...

der Kapitan.



Geschrieben von max1mus am 02.04.2003 um 22:04:

 

javascript ....




if ((navigator.appName == "Microsoft Internet Explorer")



if (navigator.appName == "Netscape")



Geschrieben von LX am 02.04.2003 um 22:13:

Achtung

Das ganze nennt sich "Browser Sniffing" und ist (zu Recht) verpöhnt unter ernsthaften Entwicklern. Denn kein Skript kann alle Browser (und dann auch noch richtig) erkennen - bei einigen Browsern kann man den USER_AGENT-String, der dabei ausgelesen wird, sogar selbst frei definieren, was solcherlei Erkennung unmöglich macht. Schlussendlich wird eine JavaScript-Lösung auch noch die schlechteste Wahl sein, weil jemand mit deaktiviertem JavaScript dann gar nix sehen wird.

Also mach dir lieber das bisschen Mühe, dass deine Seite in allen Browsern dargestellt werden kann, und tu dem Netz, dem Betrachter und nicht zuletzt dir selbst damit einen Gefallen.



Geschrieben von KptSpaltnagel am 03.04.2003 um 00:35:

 

Zitat:
Original von max1mus
javascript ....


Wenn schon JavaScript, dann eine Abfrage nach bestimmten Eigenschaften eines Browsers...

Z.B.:
if (document.layers) {var browsertyp='nn4';}
if (document.all) {var browsertyp='ie4';}
if (document.getElementbyId()) {var browsertyp='dom';}

Diese Abfrage fängt die drei wichtigsten Fähighkeiten eines Browsers in BEzug auf DHTML ab. Ich würde das aber nie als Browserweiche vor der ersten Seite realisieren, sondern immer dann, wenn die entsprechenden DHTML Fähigkeiten gebraucht werden.

Eine andere Möglichkeit wäre eine Browserweiche über verschiedene CSS-"Tricks", wie @include. Damit verhindert man, dass bestimmte CSS-eigenschaften nicht in einigen alten BRowsern angezeigt werden, wo sie Murx anrichten könnten.

Du siehst, das ganze ist etwas komplizierter. Also, wenn du es umgehen kannst, meide Funktionen, die nur in bestimmten Browsern gehen!



Geschrieben von chefcock am 03.04.2003 um 21:41:

 

Woher weiß man denn wie die verschiedenen Browser die Dateien interpretieren? Muss man das ausprobieren oder gibt es Kriterien die man vom anfang an beachten kann.



Geschrieben von LX am 03.04.2003 um 22:33:

 

Zitat:
Original von chefcock
Woher weiß man denn wie die verschiedenen Browser die Dateien interpretieren? Muss man das ausprobieren oder gibt es Kriterien die man vom anfang an beachten kann.
Das sind keine Dateien. Es sind lediglich Dinge, die die JavaScript-Interpretation verschiedener Browser voneinander unterscheidet.

document.layers kennt nur Netscape 4.x, da dies der einzige Browser ist, der mit LAYER-Tags arbeitet. document.all ist ein IE-typisches Objekt (Opera kennt es IIRC auch). Alle modernen Browser sollten allerdings das W3C-DOM unterstützen, und damit document.getElementById().

Wie gesagt sollte man aber von derartigen Scripten im Allgemeinen eher Abstand nehmen.



Geschrieben von KptSpaltnagel am 04.04.2003 um 01:38:

 

Zitat:
Original von LX
(Opera kennt es IIRC auch). Alle modernen Browser sollten allerdings das W3C-DOM unterstützen, und damit document.getElementById().


Zumindest Opera 5 hatte das document.all-Objekt, bei 6 bin ich mir nicht sicher, Opera 7 könnte es evtl. nicht mehr haben, dafür hat der BRowser aber den DOM-Support. Übrigens sollte man aufpassen, dass Browser, die DOM können und document.all haben (also Opera und IE ab 5), als "DOM" identifiziert werden. Das sollte in der Regel das bessere sein...

Übrigens kann man Opera über JavaScript auch über das Objekt window.opera abfragen. Das ist manchmal hilfreich, da gerade 5/6 nicht so reagieren, wie sie sollen, obwohl es z.B. document.all gibt....

Aber LX hat schon recht, minimiere JavaScript, arbeite mit sauberem HTML und CSS und entledige sich so der Pflicht, mit BRowserweichen zu arbeiten. Dabei sollte man es akzeptieren, dass Netscape 4 mit solchen Seiten, die ehutigen Standards voll enrsprechen gerne Schwierigkeiten hat. Ich habe es mittlerweile aufgegeben, extra Programmieraufwand darein zu stecken, meine Seiten noch an die MAcken von NN4 anzupassen. Das ist einfach nicht mehr notwendig. Es gibt mittlerweile so gut wie überall einen passenden BRowser, der einen existierenden NN4 ersetzen kann...

Gruß,
der Kapitan.



Geschrieben von LX am 04.04.2003 um 02:10:

 

Zitat:
Original von KptSpaltnagel
Zumindest Opera 5 hatte das document.all-Objekt, bei 6 bin ich mir nicht sicher, Opera 7 könnte es evtl. nicht mehr haben, dafür hat der BRowser aber den DOM-Support.
Soweit ich mich erinnere, hing die Unterstützung von document.all auch davon ab, als was man Opera sich ausgeben lässt (der Browser unterstützt die Funktion, den USER_AGENT-String nach Belieben zu ändern, aber ich glaube hier entscheidet sich auch, ob document.all funktioniert). Ich bin mir dabei aber nicht 100%ig sicher, also net hauen wenn's net stimmt *g

Zitat:
Dabei sollte man es akzeptieren, dass Netscape 4 mit solchen Seiten, die ehutigen Standards voll enrsprechen gerne Schwierigkeiten hat. Ich habe es mittlerweile aufgegeben, extra Programmieraufwand darein zu stecken, meine Seiten noch an die MAcken von NN4 anzupassen. Das ist einfach nicht mehr notwendig. Es gibt mittlerweile so gut wie überall einen passenden BRowser, der einen existierenden NN4 ersetzen kann...
Auch wenn es den Anschein haben mag, dass ich dir sonst gern widerspreche, das ist mal'n Punkt, wo ich dir nur voll und ganz zustimmen kann. smile +++ Bild konnte nicht geladen werden +++



Geschrieben von Zirias am 04.04.2003 um 11:52:

 

Hehe ich bin sogar immernoch am überlegen, ob mir nicht auch die Inkompatibilitäten vom Internet Explorer egal sein sollen smile Leider ist der noch viel weiter verbreitet, also der Netscape4, letzteren habe ich schon lange aufgegeben großes Grinsen

Greets, Ziri



Geschrieben von KptSpaltnagel am 04.04.2003 um 13:43:

 

Zitat:
Original von LX
Soweit ich mich erinnere, hing die Unterstützung von document.all auch davon ab, als was man Opera sich ausgeben lässt (der Browser unterstützt die Funktion, den USER_AGENT-String nach Belieben zu ändern, aber ich glaube hier entscheidet sich auch, ob document.all funktioniert). Ich bin mir dabei aber nicht 100%ig sicher, also net hauen wenn's net stimmt *g

Das wäre mir neu. Habe es aber nie explizit getestet. Aber das wäre eigentlich ziemlicher Schwachsinn. Denn die Änderung des USER_AGENT-Strings soll ja schwache Browserweichen "überlisten", und nicht irgendwelche Funktionen abschalten...

Zitat:
Auch wenn es den Anschein haben mag, dass ich dir sonst gern widerspreche, das ist mal'n Punkt, wo ich dir nur voll und ganz zustimmen kann. smile +++ Bild konnte nicht geladen werden +++

Cool! großes Grinsen



Geschrieben von KptSpaltnagel am 04.04.2003 um 13:45:

 

Zitat:
Original von Zirias
Hehe ich bin sogar immernoch am überlegen, ob mir nicht auch die Inkompatibilitäten vom Internet Explorer egal sein sollen smile Leider ist der noch viel weiter verbreitet, also der Netscape4, letzteren habe ich schon lange aufgegeben großes Grinsen


BEi dem Großteil meiner Seiten sind mir geringfügige Anzeigesunterschiede dann auch egal. Daher teste ich gerade häufig geänderte Seiten nur in Opera auf den Inhalt und überlasse die IE-User ihrem Schicksal... Augenzwinkern



Geschrieben von LX am 04.04.2003 um 15:09:

Achtung

Zitat:
Original von KptSpaltnagel
BEi dem Großteil meiner Seiten sind mir geringfügige Anzeigesunterschiede dann auch egal.
Schonmal exzessiv mit DIVs und absoluter Positionierung gearbeitet? Dann weißt du, dass es dabei nicht um "geringfügige Unterschiede" geht großes Grinsen

Naja, ich hoffe mal, in der nächsten IE-Version (so denn mal eine rauskommt) wird das behoben (und auch gescheiter PNG-Support implementiert). Dann könnte ich endlich mal meiner Kreativität *hüstel* freien Lauf lassen *g



Geschrieben von KptSpaltnagel am 04.04.2003 um 16:19:

 

Zitat:
Original von LX
Schonmal exzessiv mit DIVs und absoluter Positionierung gearbeitet?

Nö. Positionierte DIVs widersprechen meinem VErständnis von HTML. Für sowas soll SVG mal taugen...

Ich arbeite da lieber exzessiv mit Tabellen .Auch wenn das gerne als "schlechter Stil" angesehen wird, man muss eben ein bisschen aufpassen und etwas Ahnung haben, wenn man es gut machen will... Da gibt es ein paar einfachen Regeln, die zu beachten sind, dann sollte man kaum SChwierigkeiten mit den verschiedenen Browsern haben...



Geschrieben von LX am 04.04.2003 um 16:43:

Achtung

Zitat:
Original von KptSpaltnagel
Da gibt es ein paar einfachen Regeln, die zu beachten sind, dann sollte man kaum SChwierigkeiten mit den verschiedenen Browsern haben...
"The Guide is definitive. Reality is frequently inaccurate."

großes Grinsen



Geschrieben von CrayX am 04.04.2003 um 17:37:

 

Okay, ihr habt mich überzeugt, dann mach ich s halt ohne Weiche. Ab er ich fände sowas auf jeden Fall cool. Ist wenigstens besser, als zu sagen ich hab Netscape un die anderen sollen sich den auch holen, oder sie können meine Seite nicht sehen. böse
Das ist ein bisschen dumm, denn diesen "Aufwand" scheuen viele User, und würden statt dessen deine Seite nicht mehr Besuchen.-
Thx @ all.

CrayX



Geschrieben von KptSpaltnagel am 04.04.2003 um 17:42:

 

Zitat:
Original von CrayX
Okay, ihr habt mich überzeugt, dann mach ich s halt ohne Weiche. Ab er ich fände sowas auf jeden Fall cool. Ist wenigstens besser, als zu sagen ich hab Netscape un die anderen sollen sich den auch holen, oder sie können meine Seite nicht sehen. böse
Das ist ein bisschen dumm, denn diesen "Aufwand" scheuen viele User, und würden statt dessen deine Seite nicht mehr Besuchen.-


Vielleicht wurde durch unsere Diskussion eines nicht ganz klar:
Wir wollen dich auf keinen Fall dazu überreden, eine Seite zu bauen, die nur auf dem eigenen Browser geht, sondern eine Seite, die von Haus aus auf so gut wie allen Browsern gescheit läuft. Dazu sollte man sich an die Standards halten. Das ist auf jeden Fall ein "sauberer" Weg. Es ist aber so, dass das Anpassen aktueller Seiten an die Macken von Netscape 4 nicht nur zeitaufwändig sondern auch nervenzehrend ist. Da der Browser kaum noch verbreitet ist, sollte man sich gut überlegen, ob man das auf sich nimmt.



Geschrieben von CrayX am 04.04.2003 um 17:51:

 

Nee nee, so meinte ich das nicht. Ich hatte sowieso nicht vor, die Seite jetzt auf Netscape 4 zuzuschneidern, aber ich fand das es eine interessnte Möglichkeit wäre so eine WEiche einzubauen. Aber ihr habt mich überzeugt es niht zuntun und ich hatte nicht vor sie nur für einen browser zu machen. Hab ja vier Browser, allerdings die aktuellsten Versionen, um meine Seite zu Testen. Damit die überall gleich gut läuft-
CYA

CrayX



Geschrieben von Zirias am 04.04.2003 um 20:02:

 

Zitat:
Original von KptSpaltnagel
Nö. Positionierte DIVs widersprechen meinem VErständnis von HTML. Für sowas soll SVG mal taugen...

SVG ist Vektorgrafik und mit Sicherheit nicht für das Layout von Seiten gedacht. Positionierte DIVs sind da nach dem HTML-Verständnis des W3C die einzige korrekte Möglichkeit (wegen Trennung von Layout und Inhalt/Struktur) Zunge raus
Zitat:
Ich arbeite da lieber exzessiv mit Tabellen .Auch wenn das gerne als "schlechter Stil" angesehen wird, man muss eben ein bisschen aufpassen und etwas Ahnung haben, wenn man es gut machen will... Da gibt es ein paar einfachen Regeln, die zu beachten sind, dann sollte man kaum SChwierigkeiten mit den verschiedenen Browsern haben...

Ich mache auch fast alles mit Tabellen, das geht auch in der Tat sehr gut und ich habe es bisher immer so gemacht, weil es der einzige Weg ist, dass auch IE meine Layouts kapiert ohne dass ich dem Schlagamnfall nahekomme großes Grinsen Aber die Nachteile liegen auf der Hand und schlechter Stil ist es auf jeden Fall. Nur eben ein schlechter Stil, zu dem man in vielen Fällen noch gezwungen wird. Ich habe jetzt mal testweise eine Seite mit positionierten DIVs aufgebaut und es ist wirklich frappierend, wieviel übersichtlicher dadurch der HTML-Code wird. Selbst die "CSS-Wurst" Ist allein eher leserlich als 5- oder 6fach verschachtelte TABLEs smile Naja und IE zeigt eben nur Müll an *g*

Greets, Ziri



Geschrieben von KptSpaltnagel am 04.04.2003 um 21:45:

 

Zitat:
Original von Zirias
[quote]SVG ist Vektorgrafik und mit Sicherheit nicht für das Layout von Seiten gedacht. Positionierte DIVs sind da nach dem HTML-Verständnis des W3C die einzige korrekte Möglichkeit (wegen Trennung von Layout und Inhalt/Struktur) Zunge raus

Einen guten Vektor-Format schreibe ich die Funktionen zu, die der Klassiker CorelDraw bietet, und das taugt sehr wohl zum Seitenlayout. Es geht mir aber vielmehr um die unterschiedliche Logik zwischen Textdokument und Vektor-Dokument:
- Ein Text-Dokument hat eine feste Reihenfolge und ist streng linear aufgebaut. Ohne einzelne WErte auszulesen kann ich an der Reihenfolge der Elemente im Quelltext die Reihenfolge der Elemente in der Ausgabe erkennen. Tabellen sind dabei ein legales Mittel der "Strukturierung", weil sie auch streng nach Reihenfolge funktionieren...
- Vektordokumente dagegen arbeiten mit auf der Arbeitsfläche frei positionierbaren Elementen. Die Reihenfolge der Elemente ist dabei oft identisch mit der Anordnung an der z-Achse (bei positionierten HTML-Divs ist nichtmal das zwingend...).
Darüber hinaus kann ich bei beiden Paradigmen Inhalt und Layout trennen oder vermischen. Im konkreten Fall HTML hängt das immer davon ab, wieviel ich an CSS ausgliedere oder nicht...

Zitat:
Ich mache auch fast alles mit Tabellen, das geht auch in der Tat sehr gut und ich habe es bisher immer so gemacht, weil es der einzige Weg ist, dass auch IE meine Layouts kapiert ohne dass ich dem Schlagamnfall nahekomme großes Grinsen Aber die Nachteile liegen auf der Hand und schlechter Stil ist es auf jeden Fall. Nur eben ein schlechter Stil, zu dem man in vielen Fällen noch gezwungen wird. Ich habe jetzt mal testweise eine Seite mit positionierten DIVs aufgebaut und es ist wirklich frappierend, wieviel übersichtlicher dadurch der HTML-Code wird. Selbst die "CSS-Wurst" Ist allein eher leserlich als 5- oder 6fach verschachtelte TABLEs smile Naja und IE zeigt eben nur Müll an *g*

5 oder 6 Tabellen-ebenen ist auch schon etwas fille Augenzwinkern
Mehr als drei Ebenen brauche ich eigentlich selten. Und den HTML-Code mit Tabellen finde ich extrem übersichtlich (wenn man sauber erinrückt und so...). BEi Div-Seiten kriege ich immer ein Hals, wenn die Reihenfloge der Divs im Dokument nichts zu tun hat mit der Darstellung. Denn sobald man Textbereiche nebeneinander gruppiert, kommt die Frage auf: In welcher Reihenfolge mache ich das? Für die Anzeige ist es irrelevant, für die Übersichtlichkeit des Codes mag es aber entscheidend sein. Bei Tabellen muss ich zeilenweise von links nach rechts arbeiten, und zwar immer!
Ein weiteres Problem von Divs ist meiner Meinung nach die spätere Änderung der Inhalte. Schnell zerhaut eine zusätzliche Zeile alles, vor allem wenn andere Divs relativ zum ersten positioniert sind... Tabellen sind da weniger fehlersensitiv. SChau dir mal die verschiedenen Seiten unter www.xnot.net/dip an, die haben ganz verschiedenen Inhalt, werden häufig geändert, haben aber alle einen absolut identischen Grundaufbau. Bei keiner BEarbeitung habe ich auch nur einen width= oder height= Wert der Hauptstrukturen geändert und sowieso wenig Attribute geschrieben. Trotzdem hat sich so einiges geändert... und alle Änderungen waren schnell und ohne großes Austesten gemacht! Ich glaube nicht, dass ich das mit Divs genauso einfach hätte...

Ein anderer Punkt ist noch, dass Tabbellenzellen sich nie überlappen können. Denn durch die Überlappung resultieren viele Anzeigefehler bei Divs...

Gruß,
der Kapitan.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH