0

Мои сценарии Greasemonkey работают в Firefox 3.6, но в Chrome 6 ничего не происходит, когда я загружаю страницу, которая должна запускать их. Here - пример сценария (вставляемый ниже), который выделяет верхние комментарии к Hacker News. Может ли кто-нибудь определить, что я делаю неправильно? Когда я нажимаю на файл user.js и устанавливаю его в Chrome, установка завершается успешно.Почему мои скрипты Greasemonkey не работают в Chrome?

// ==UserScript== 
// @name   Hacker News highlight 
// @namespace  http://news.ycombinator.com 
// @description highlights popular comments 
// @include  http://news.ycombinator.com/item* 

// ==/UserScript== 

var GM_JQ = document.createElement('script'); 
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js'; 
GM_JQ.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(GM_JQ); 

// Check if jQuery's loaded 
function GM_wait() { 
    if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); } 
else { $ = unsafeWindow.jQuery; letsJQuery(); } 
} 

GM_wait(); 

function letsJQuery() { 

    var maxScore = 0; 
    var secBest = 0; 
    var min = 0; 

    var numComments = 0; 
    $(".comhead > span").each(function() { 
     numComments = numComments + 1; 
     var score = parseInt($(this).text().split(' ')[0]); 
     if(score > maxScore) { 
      maxScore = score; 
     } 
     else if(score > secBest) { 
      secBest = score; 
     } 
    }); 

    min = maxScore - secBest; 

    $(".comhead > span").each(function() { 
     var score = parseInt($(this).text().split(' ')[0]); 

     if(min!=0 && score >= min + 1) { 
      $(this).css({'background-color':'#B2D7FB', 'padding':'4px 4px 4px 4px','-moz-border-radius':'3px', '-webkit-border-radius':'3x'});  
     } 
    }); 
} 
+0

Для чего у него есть хром 7. Возможно ли, что поддержка greasemonkey была добавлена ​​в 7? – Iznogood

+0

Работает ли скрипт для вас? Поддержка Greasemonkey была добавлена ​​еще в феврале. – RexE

+0

Я запускаю Chromium 6.0.472.53 на Ubuntu 10.04, а сценарии GreaseMonkey тоже не работают. – Zaz

ответ

0

Я обнаружил, что проще получить доступ к странице Ресурсы по injecting my code into the DOM:

// ==UserScript== 
// @name   Hacker News highlight 
// @namespace  http://news.ycombinator.com 
// @description highlights popular comments 
// @include  http://news.ycombinator.com/item* 
// @run-at   document-end 
// ==/UserScript== 

function letsJQuery() { 
    // your stuff 
} 

var jQuery = document.createElement("script"), 
    inject = document.createElement("script"); 

jQuery.setAttribute("type", "text/javascript"); 
jQuery.setAttribute("src", "http://code.jquery.com/jquery-latest.js"); 

inject.setAttribute("type", "text/javascript"); 
inject.appendChild(document.createTextNode("(" + letsJQuery + ")()")); 

document.body.appendChild(jQuery); 
document.body.appendChild(inject); 

@run-at гарантирует, что нагрузки скрипт сразу после того, как DOMDocumentReady, так же, как и в Greasemonkey, и я изменил свой адрес JQuery, чтобы указать на их CDN ,

0

Я нашел решение here. Мои скрипты теперь работают.

Смежные вопросы