изменение курсора мыши на js - PullRequest
2 голосов
/ 11 января 2011

Я пытаюсь изменить курсор мыши с помощью js для MS CRM Dynamics 4.0, когда я вызываю метод с помощью ajax, я хочу отобразить курсор мыши как ожидание: document.body.style.cursor = "wait«;но это не работает ... как я могу это сделать?

1 Ответ

4 голосов
/ 11 января 2011

То, что вы делаете, работает.

Имейте в виду, что если cursor установлен в CSS для любых потомков, это отменит настройку курсора на body.

Пример: http://jsfiddle.net/88272/

Также обратите внимание, что я растянул width и height тела до 100%.


Вот возможное решение, если другие элементы перезаписываются.

Добавьте это к вашему CSS:

body.isWaiting, body.isWaiting * {
    cursor:wait !important;
}

... затем сделайте:

document.body.className = 'isWaiting';

Пример: http://jsfiddle.net/88272/3/

Вам нужно проверить совместимость браузера.


EDIT:

Так как кажется, что вы не можете добавить свою собственную таблицу стилей на стороне сервера, вы можете вместо этого попытаться добавить ее с помощью javascript.

Пример: http://jsfiddle.net/88272/4/

   // string representation of stylesheet content
var styles = 'body.isWaiting, body.isWaiting * {cursor:wait !important;}';

   // grab the <head> element
var head = document.getElementsByTagName('head')[0];

   // create a new "style" element, and set up its properties/content
var sheet = document.createElement('style');
sheet.setAttribute('media', 'all');
sheet.setAttribute('type', 'text/css');

if(sheet.styleSheet) {
    sheet.styleSheet.cssText = styles;  // For IE
} else {
    sheet.appendChild( document.createTextNode(styles) );
}

   // append the new <style> element to the <head>
head.appendChild( sheet );

   // give the <body> the class when it is needed
document.body.className = 'isWaiting';
...