Axel Richter: Browser-Erkennung mit Objektprüfung: style.cursor="hand"

Beitrag lesen

Hallo,

Kann er auch nicht, weil kein Fehler auftritt. Die Eigenschaft [Element].style.cursor ist ja vorhanden und kann einen Wert zugewiesen bekommen. Auch
document.getElementById(mblock).style.cursor = "MaxIstDoof";
würde keinen Fehler erzeugen.

Doch, ich habe mich getäuscht. Es funktioniert; mein Fehler lag weiter oben im Code. Ich habe jetzt aber ein neues Problem entdeckt (siehe meinen Berichtigungs-Beitrag)...

Nein eine Anweisung [Element].style.cursor = "irgendwas" kann _nie_ einen Fehler verursachen. Ein Fehler würde verursacht, wenn es [Element] nicht gibt.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Cursor Hand</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript">
<!--
function machHandCursor(){
 try {
  document.getElementById("mblock").style.cursor = "MaxIstDoof";
  document.getElementById("mblock").style.cursor = "pointer";
  document.getElementById("mblock").style.cursor = "hand";
  //document.getElementById("gibtsnicht").style.cursor = "hand";
 } catch (e) {
  alert(e.toString()); return;
 }
}
//-->
</script>
</head>
<body onload="machHandCursor();">
<h1 id="mblock">Test</h1>
</body>
</html>

Wenn Du die Kommentarzeichen wegnimmst, _dann_ wird der catch-Block erreicht.

Du kannst der cursor-Eigenschaft nacheinander die Werte "pointer" und "hand" zuweisen. Browser, die CSS {cursor:hand;} nicht kennen, sollten diese Zuweisung ignorieren.

document.getElementById(mblock).style.cursor = "pointer";
document.getElementById(mblock).style.cursor = "hand";

Habe ich auch schon probiert, funktioniert leider nicht.

Doch. Das obige beispiel zeigt sowohl im IE, als auch im Mozilla einen Hand-Cursor

Oder gleich im CSS des entsprechenden Elements:

{... cursor:pointer; cursor:hand; ... }

Die Cursoranzeige soll in meinem Fall dynamisch sein, also leider: auch das geht nicht.

Doch, auch das würde gehen. Du kannst doch die CSS-Klassen dynamisch austauschen.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Cursor Hand</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
<!--
.handcursor {
  cursor:pointer;
  cursor:hand;
}
-->
</style>
<script type="text/javascript">
<!--
function machHandCursor(){
 try {
  document.getElementById("mblock").className = "handcursor";
 } catch (e) {
  alert(e.toString()); return;
 }
}
//-->
</script>
</head>
<body>
<h1 id="mblock">Test</h1>
<button onclick="machHandCursor();">Handcursor</button>
</body>
</html>

viele Grüße

Axel