Ist es möglich, den Cursor auf einfache Weise auf der gesamten HTML-Seite auf "Warten" zu setzen? Die Idee ist, dem Benutzer zu zeigen, dass etwas los ist, während ein Ajax-Anruf abgeschlossen wird. Der folgende Code zeigt eine vereinfachte Version von dem, was ich versucht habe, und zeigt auch die Probleme, auf die ich stoße:
- Wenn für ein Element (# id1) ein Cursorstil festgelegt ist, wird der am Körper festgelegte ignoriert (offensichtlich).
- Einige Elemente haben einen Standardcursorstil (a) und zeigen den Wartecursor beim Hover nicht an
- Das Body-Element hat je nach Inhalt eine bestimmte Höhe. Wenn die Seite kurz ist, wird der Cursor nicht unter der Fußzeile angezeigt
Der Test:
<html>
<head>
<style type="text/css">
#id1 {
background-color: #06f;
cursor: pointer;
}
#id2 {
background-color: #f60;
}
</style>
</head>
<body>
<div id="id1">cursor: pointer</div>
<div id="id2">no cursor</div>
<a href="#" onclick="document.body.style.cursor = 'wait'; return false">Do something</a>
</body>
</html>
Später bearbeiten ...
Es funktionierte in Firefox und IE mit:
div#mask { display: none; cursor: wait; z-index: 9999;
position: absolute; top: 0; left: 0; height: 100%;
width: 100%; background-color: #fff; opacity: 0; filter: alpha(opacity = 0);}
<a href="#" onclick="document.getElementById('mask').style.display = 'block'; return false">
Do something</a>
Das Problem (oder die Funktion) dieser Lösung ist, dass sie Klicks aufgrund des überlappenden Div verhindert (danke Kibbee).
Später später bearbeiten ...
Eine einfachere Lösung von Dorward:
.wait, .wait * { cursor: wait !important; }
und dann
<a href="#" onclick="document.body.className = 'wait'; return false">Do something</a>
Diese Lösung zeigt nur den Wartecursor an, erlaubt jedoch Klicks.