他のソリューションの一部は、すべての状況で機能するとは限りません。2 つの CSS ルールを使用して、目的の結果を得ることができます。
body.busy, .busy * {
cursor: wait !important;
}
.not-busy {
cursor: auto;
}
前者は、忙しいことを示しており、ページ上のすべての要素に適用され、他のカーソル スタイルを上書きしようとしています。後者はページ本体にのみ適用され、単に UI の更新を強制するために使用されます。このルールはできるだけ具体的でなく、他のページ要素に適用する必要はありません。
次に、次のようにビジー状態をトリガーして終了できます。
function onBusyStart() {
document.body.classList.add('busy');
document.body.classList.remove('not-busy');
}
function onBusyEnd() {
document.body.classList.remove('busy');
document.body.classList.add('not-busy');
}
要約すると、カーソルを更新するにはカーソルのスタイルを変更するdocument.body.style.cursor
必要がありますが、カーソルを移動するまで、Webkit などの一部のエンジンでは、直接変更または同様の操作を行っても意図した効果が得られません。クラスを使用して変更に影響を与えると、より堅牢になります。ただし、UI を確実に強制的に更新するために (これも一部のエンジンで)、別のクラスを追加する必要があります。クラスの削除は、クラスの追加とは異なる方法で処理されるようです。