Есть ли способ перезагрузить скрипт greasemonkey? - PullRequest
2 голосов
/ 15 июня 2010

Есть ли способ перезагрузить скрипт из greasemonkey?

Например: когда я захожу на какой-то конкретный сайт, скрипт от greasemonkey работает правильно, но когда я меняю страницу (asp на сайтеЯ полагаю), скрипт не перезагружается, чтобы вступить в силу ...

Как я могу это решить?

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Оберните ваш код Greasemonkey в функцию, а затем установите обработчик события изменения документа для его вызова. Вот так ...

/*--- To "refire" our Greasemonkey code on AJAX changes, we wrap it in
    a function and call it on a DOM change event.
*/

var zGbl_DOM_ChangeTimer                = '';
var bGbl_ChangeEventListenerInstalled   = false;


/*--- Run everything after the document has loaded.  Avoids race-
      conditions and excessive "churn".
*/
window.addEventListener ("load", MainAction, false);


function MainAction ()
{
    if (!bGbl_ChangeEventListenerInstalled)
    {
        bGbl_ChangeEventListenerInstalled   = true;

        /*--- Notes:
                (1) If the ajax loads to a specific node, add this
                    listener to that, instead of the whole body.
                (2) iFrames may require different handling.
        */
        document.addEventListener ("DOMSubtreeModified", HandleDOM_ChangeWithDelay, false);
    }

    //--- ****************************
    //--- *** YOUR CODE GOES HERE. ***
    //--- ****************************
}


function HandleDOM_ChangeWithDelay (zEvent)
{
    /*--- DOM changes will come hundreds at a time, we wait a fraction
          of a second after the LAST change in a batch.
    */
    if (typeof zGbl_DOM_ChangeTimer == "number")
    {
        clearTimeout (zGbl_DOM_ChangeTimer);
        zGbl_DOM_ChangeTimer = '';
    }
    zGbl_DOM_ChangeTimer     = setTimeout (function() { MainAction (); }, 222); //-- 222 milliseconds
}
0 голосов
/ 16 июня 2010

Greasemonkey должен работать при каждой загрузке страницы, поэтому я думаю, что проблема, с которой вы столкнулись, связана с правилами @ include / @ exclude, используемыми для рассматриваемого пользовательского сценария. Можете ли вы указать нам источник этого пользовательского скрипта? и две страницы, на которые вы ссылаетесь в своем вопросе, пожалуйста?

...