Is it possible to set the cursor to 'wait' on the entire html page in a simple way? The idea is to show the user that something is going on while an ajax call is being completed. The code below shows a simplified version of what I tried and also demonstrate the problems I run into:
- if an element (#id1) has a cursor style set it will ignore the one set on body (obviously)
- some elements have a default cursor style (a) and will not show the wait cursor on hover
- the body element has a certain height depending on the content and if the page is short, the cursor will not show below the footer
The 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>
Later edit...
It worked in firefox and IE with:  
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>
The problem with (or feature of) this solution is that it will prevent clicks because of the overlapping div (thanks Kibbee)
Later later edit...
A simpler solution from Dorward:
.wait, .wait * { cursor: wait !important; }
and then
<a href="#" onclick="document.body.className = 'wait'; return false">Do something</a>
This solution only shows the wait cursor but allows clicks.
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    