Moin molily,
ich habe das ding, das nach der browserabfrage "gestartet" wird (großes Javascript-gebilde ;-), mit mehrern Browsern getestet und bei einigen, wie z.B. NS4 oder NS6, Problemchen festgestellt. Auf diese will ich gerne hinweisen.
Browser wie Opera, IE oder Mozilla sollen nicht lesen müssen, dass ns4 evv. schwarze striche und dies und jenes darstellt.
Wenn es nur um solche Sachen geht, dann reicht ein punktuelles if (document.layers).
eigentlich ganz richtig. ich habe ja auch in meinem script
...
if(document.layers) netscape = true;
...
und später
if(netscape)
.....
geschrieben.
Darüber hinaus wären CSS-Weichen denkbar, die bspw. ein bestimmtes Element mit dem Hinweis nur für Netscape 4 zeigen (es gibt ebenso zuverlässige CSS-Weichen).
ja. Aber das ganze ding ist sooo komplex, dass es das ganze nur noch umständlicher machen würde und vor allem ist ehrlichgesagt auch kein platz dafür da ;-)
Da das ganze aber sowieso auf JavaScript beruht, sehe ich da kein problem. Funktioniert jetzt alles wunderbar:
<script language="JavaScript">
var opera = false, msie = false, netscape = false, moz = false, dhtml = false, badbrowser = false;
function chk()
{
if(window.opera) opera = true;
if(document.all && !opera) msie = true;
if(document.layers && !opera) netscape = true;
if(window.pkcs11) moz = true;
if(!opera && !msie && !netscape && !moz)
{
if(document.getElementById) dhtml = true;
else badbrowser = true;
}
if(netscape)
{ // NS 4
alert("Du benutzt Netscape 4\nDas System ist für modernere Browser gedacht, wurde jedoch erfolgreich mit diesem Browser getestet");
c = confirm("Es wird jedoch recht ungemütlich, eigentlich ist ein neuerer Browser zu empfehlen.\nWillst du trotzdem mit dem Netscape4 chatten?");
if(c)
alert("Viel Spaß beim Ausprobieren. Funktionalität des Systems nicht gewährleistet.");
}
else if(dhtml)
alert("Dein Browser konnte nicht einwandfrei identifiziert werden.\nEr scheint jedoch alle erforderlichen Techniken zu unterstützen.");
else if(badbrowser)
{
alert("Dein Browser konnte nicht identifiziert werden.\nDie benötigten Techniken werden von deinem Browser nicht unterstützt.\nDas System wird _nicht_ geladen.");
return;
}
location.href = "main.start.php";
}
//-->
</script>
ist ja auch nicht weiter bedeutungsvoll. Es ging mir hier lediglich um das "window.pkcs11", mit dem ich Mozilla aus der breiten Masse (?) der allgemeinen "akzeptabelen" Browser (dhtml = true-Browser) rausheben kann.
ja, das ist klar. Nur wird eben dann ausgegeben, dass der Browser nicht einwandfrei identifiziert werden konnte und es daher probleme mit der "Applikation" geben könnte.
Wie gesagt, frage die Methoden/Eigenschaften ab, mit denen es Probleme gibt.
- modernes CSS
- komplizierte Scripts (ereignisüberwachung, usw. halt)
das ist eine ganze reihe, praktisch alles, was ein moderner Browser im Gegensatz zu einem alten bietet.
Welchen Zweck hat die Identifizierung? Konqueror wird z.B. als MSIE erkannt.
ja!? Aber er verhält sich doch nicht wie der IE, oder?
In Bezug auf was? In Bezug auf document.all? Ja. Die gängigen Zugriffe mit document.all auf Elemente mit IDs kann Konqueror (window['ID'], document.all.ID, document.all('ID'), document.all['ID'], document.all.namedItem('ID')), ebenso document.all.tags(...).
na dann - kein problem. Er wird als IE identifiziert und verhält sich auch entsprechend.
Gruß,
Sven