上記Dojoの件で、いろんなバージョンのIEで試してみた中で気づいたのですが、IE8って、JavaScript中で
obj.style.cursor = 'tmp.cur';
とやっても、マウスカーソルが望むファイルに変化しません。IE7まではこれでうまくいっていたのですが。
いろいろ試したところ、
obj.style.cursor = "url('tmp.cur')";
ならIE8のBetaでマウスカーソルを変えられました。しかしこれだと今度はIE7以下で、URLとしてhttp://server/url('tmp.cur')みたいにおかしいファイルをサーバーへ取りに行くので表示されず、サーバー側でもエラーとなります。解決するには、修正せずにIE8ではマウスカーソルは変更しないか、IE8とそれ以下とで場合分けをしないといけないようです。場合分けはDojoを使って以下のようにしました。
if (dojo.isIE >= 8) { obj.style.cursor = "url('./tmp.cur')"; } else { obj.style.cursor = './tmp.cur'; }
もしくはこんな感じ。
obj.style.cursor = dojo.isIE >= 8 ? "url('./tmp.cur')" : './tmp.cur';
でも、この対策でちゃんとできたのはWindows XPのIE8 Betaで、Windows 7 BetaのIE8 BetaではJavaScriptでcursorのファイルを指定しても無視されてしまいます。画像ファイルの指定じゃなくて、
obj.style.cursor = 'move';
とかなら問題ありません。
試しにCSSの方でcursorを指定すると思い通りのファイルがカーソルになりますので、curファイルに対応していないとかではないようです。なぜかWindows 7 BetaのIE8に限ってJavaScriptでマウスカーソルの画像ファイルを指定するとおかしいという結論になりました。