Hi,
if (document.getElementById("one").innerHTML)
das ergibt einen Fehler, wenn der Browser die Methode document.getElementById nicht kennt. Gemeint ist:
if (document.getElementById)
Beachte: die Methode ohne Klammern, weil sonst wieder die Ausführung derselben versucht würde.
Kann man so jeden Befehl überprüfen?
Ja.
Cheatah
hi,
-noch mein kommentar zu browsercheck
-das sicherste ist es schon vor jeder verwendung von methoden und eigenschaften diese zu überprüfen.
-leider ist dies nicht unbedingt der perfomance bekömmlich und teilweise auch wie folgend fehlerbehaftet:
if (self.navigator != null && self.navigator.javaEnabled != null)
alert("javaEnabled existiert");
else
alert("javaEnabled existiert nicht");
-Der ie 5 und 6 macht hier z.bsp. eine fehlermeldung.
-Und noch was wenn du also folgendes testen willst:
document.getElementById("name_element").irgend_eine_methode;
muss du das wie folgt implementieren:
if (document.getElemantById != null && document.getElemantById("name_element") != null && document.getElemantById("name_element").irgen_eine_methode != null)
alert("ok");
else
alert("nicht ok");
du musst die also durch das dom durchhangeln sonst kriegst du fehlermeldungen.
-du kannst auch den userAgent auswerten. du musst einfach alle möglichkeiten durchchecken. z.bsp. opera kann sich ja verschieden identifizieren.
-folgende funktion:
function Lenas_Cross_Browser_test_name_browser()
{
for (var i = 0; i < arguments[0].length; i++)
{
// nc_4
if (arguments[0][i] == "nc_4" && navigator.userAgent.indexOf("Mozilla/4") != -1 && navigator.userAgent.indexOf("MSIE") == -1 && navigator.userAgent.indexOf("Opera") == -1)
return true;
// nc_6
if (arguments[0][i] == "nc_6" && navigator.userAgent.indexOf("Mozilla/5") != -1 && navigator.userAgent.indexOf("rv:0") != -1 && navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("Netscape6") != -1)
return true;
// nc_7
if (arguments[0][i] == "nc_7" && navigator.userAgent.indexOf("Mozilla/5") != -1 && navigator.userAgent.indexOf("rv:1") != -1 && navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("Netscape/7") != -1)
return true;
// mo_0
if (arguments[0][i] == "mo_0" && navigator.userAgent.indexOf("Mozilla/5") != -1 && navigator.userAgent.indexOf("rv:0") != -1 && navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("Netscape") == -1)
return true;
// mo_1
if (arguments[0][i] == "mo_1" && navigator.userAgent.indexOf("Mozilla/5") != -1 && navigator.userAgent.indexOf("rv:1") != -1 && navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("Netscape") == -1)
return true;
// ie_4
if (arguments[0][i] == "ie_4" && navigator.userAgent.indexOf("Mozilla/4") != -1 && navigator.userAgent.indexOf("MSIE 4") != -1 && navigator.userAgent.indexOf("Opera") == -1)
return true;
// ie_5
if (arguments[0][i] == "ie_5" && navigator.userAgent.indexOf("Mozilla/4") != -1 && navigator.userAgent.indexOf("MSIE 5") != -1 && navigator.userAgent.indexOf("Opera") == -1)
return true;
// ie_6
if (arguments[0][i] == "ie_6" && navigator.userAgent.indexOf("Mozilla/4") != -1 && navigator.userAgent.indexOf("MSIE 6") != -1 && navigator.userAgent.indexOf("Opera") == -1)
return true;
// op_5
if (arguments[0][i] == "op_5" && (navigator.userAgent.indexOf("Opera/5") != -1 || navigator.userAgent.indexOf("Opera 5") != -1))
return true;
// op_6
if (arguments[0][i] == "op_6" && (navigator.userAgent.indexOf("Opera/6") != -1 || navigator.userAgent.indexOf("Opera 6") != -1))
return true;
}
return false;
}
-sie wird wie folgt aufgerufen:
Lenas_Cross_Browser_test_name_browser(["nc_4", "nc_6", "nc_7"])
die funktion gibt bei den browsern netcape 4, 6 und 7 true zurück, ansonsten false.
-folgende browser habe ich implementiert:
nc_4, nc_6, nc_7 netscape
mo_0, mo_1 mozilla
ie_4, ie_5, ie_6 internet explorer
op_5, op_6 opera
gruss, heinz