Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Смена курсора, Javascript, расширение chrome (https://javascript.ru/forum/css-html-browser/44906-smena-kursora-javascript-rasshirenie-chrome.html)

ekzo 06.02.2014 08:41

Смена курсора, Javascript, расширение chrome
 
Никогда не писал на js, но тут из-за нововведения в последней версии хрома решил написать плагин, который бы заменял курсор на такой при загрузке страницы, сейчас курсор не меняется, и это ацки раздражает.

Скудные примеры из инета не работают, берем готовый плагин с гугла, который якобы меняет курсор (называется rock hand, если чо):

- не работает. Код там кстати очень простой:


var cursor = 'url('+chrome.extension.getURL('rockhand.png')+')';

$(document).on('mouseover', 'a, [onclick]', function () {
    $(this).css('cursor', cursor + ',auto');
});



Я, конечно, пытался по аналогии, типа
chrome.tabs.onUpdated.addListener( 
function (tabId, changeInfo, tab)
{
  
  if (changeInfo.status == 'loading' && tab.active)
  {
  var cursor = 'url('+chrome.extension.getURL('rockhand.png')+')';
  $(this).css('cursor', cursor + ',auto');
  }
}
);

но оно конечно тоже не прокатило... jquery кстати подключен, вроде все четко...

Я, наверное, что-то делаю не так, не может быть, чтобы нельзя было менять курсор.

ps. сори если не туда)

danik.js 06.02.2014 13:35

Цитата:

Сообщение от ekzo
$(this)

И на что будет указывать this в твоем случае?
И не жирно ли подключать jQuery ради сраной функции css()? Эхх, жиды...

melky 06.02.2014 14:10

Попробуй :

https://developer.chrome.com/extensi...-executeScript

И ставить курсор так (на <html>, а не на this):

document.documentElement.style.cursor = 'url('+chrome.extension.getURL('rockhand.png')+')' + ', auto';

ekzo 07.02.2014 08:21

Цитата:

Сообщение от melky (Сообщение 296268)

Спс, но я полный ноль в написании этих расширений (да и в JS, если честно), поэтому не знаю, что с этим делать.

Цитата:

И ставить курсор так (на <html>, а не на this):

document.documentElement.style.cursor = 'url('+chrome.extension.getURL('rockhand.png')+')' + ', auto';

Это работает в простой страничке, но в расширении видимо нужно это вызывать в нужно месте. Где? Я пробовал разное, типа
if (document.readyState != "complete") {...}

или

chrome.tabs.onUpdated.addListener( 
function (tabId, changeInfo, tab)
{
  if (changeInfo.status == 'complete' && tab.active)
  {


Алерты, например, вижу, то есть попадаю в условия, но курсору по-барабану...

danik.js 07.02.2014 11:01

Твой кусок кода похож на код из бэкграунд-скрипта расширения. А он не имеет доступа к странице! Нужно писать контент-скрипт! Короче, учи матчасть, гугл отлично описывает методику создания расширений!


Часовой пояс GMT +3, время: 14:30.