Arhn - архитектура программирования

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

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

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

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

15.06.2010

  • Мои сценарии, похоже, работают при загрузке страницы. Возможно, вы наблюдаете поведение, когда страница использует AJAX, а часть страницы перезагружается через Javascript. 15.06.2010

Ответы:


1

Оберните свой код 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
}
16.06.2010
  • может ли этот скрипт выполняться только X раз после действия мыши? (щелчок мышью) 18.06.2010
  • Да. Вы бы удалили прослушиватель DOMSubtreeModified и добавили что-то вроде: YourNode.addEventListener ("click", HandleDOM_ChangeWithDelay, false); . Это не так сложно сделать. Напишите еще вопрос, если нужно. 18.06.2010

  • 2

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

    16.06.2010
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..