пошаговое выполнение сценария greasemonkey - PullRequest
4 голосов
/ 08 марта 2011

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

На аналогичном замечании: есть ли способ протестировать сценарии без необходимости каждый раз ждать 4 секунды, чтобы установить его?

Ответы [ 3 ]

4 голосов
/ 08 марта 2011

Сначала легкая часть:

"На аналогичном замечании: есть ли способ протестировать сценарии, не ожидая каждый раз в течение 4 секунд, чтобы установить его?"

Да!

  1. Убедитесь, что у вас установлен Greasemonkey 9.0 или более поздней версии.

  2. Убедитесь, что у вас есть редактор, настроенный сGM.Вы можете установить это в опциях GM или открыть about: config и установить greasemonkey.editor, например, D:\Program Files\TextPad\TextPad.exe, но это должен делать любой приличный редактор программирования.

  3. Теперь отредактируйте скрипт, открыв диспетчер скриптов GM и нажав соответствующую кнопку Редактировать .Ваш редактор должен открыться с правильным загруженным файлом, и любые сделанные вами изменения вступят в силу немедленно, каждый раз, когда вы сохраняете файл.

  4. Будьте осторожны, чтобы изменения, внесенные таким образом в директивы @require,все равно не вступит в силу.То есть новый файл не будет скопирован и не будет использован.Вы все еще должны удалить / переустановить, чтобы получить @require изменений на флешку.


"Мне было интересно, есть ли способ выставить скрипт на firebug ион установил точку останова. Я хотел бы иметь возможность в конечном итоге перебирать сценарии, над которыми я работаю. "

Есть новое дополнение, FireBugMonkey ,это может помочь (мне еще нужно попробовать).

Разговор о том, как заставить Firebug хорошо работать над сценариями GM, продолжается уже более 4 лет.Вот самая последняя / релевантная тема в Greasemonkey-Dev Group .

. В ближайшем будущем нет способа пройтись по сценариям GM, которые используют функции GM_..

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

Например, структурируйте ваш код следующим образом:

function localMain ()
{
    /*--- Put EVERYTHING inside this wrapper, functions and variables.
        Call or use nothing else that's defined in the GM script here.
        You can use objects in the source page's scope, though.
    */
    console.log ("Hiya!");
}


Затем в Firefox вы можете использовать unsafeWindow.localMain = localMain; для ввода кода, Firebug увидит его.

unsafeWindow.localMain(); запускает код из GM, localMain(); запускает его из консоли Firebug.

Помните, что этот метод предоставляет маршрут для вредоносного JavaScript (с целевой страницы) для получения повышенных привилегий ипотенциально pwn ваша система (одна из причин, почему GM был перемещен в песочницу в первую очередь).Но это быстро и просто при настройке таргетинга на доверенные страницы.

~~~
Кроме того, вы можете добавить скрипт следующим образом:

var scriptNode          = document.createElement ("script");
scriptNode.textContent  = localMain.toString() + "\n localMain ();";
document.body.appendChild (scriptNode);

Этот метод работает во всех соответствующих браузерах.

~~~
Библиотеки, такие как jQuery, могут копироваться или вставляться аналогичным образом.

1 голос
/ 08 марта 2011

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

Нет способа установить точки останова Firebug для пользовательских сценариев atm, но Джон Бартон (из Firebug)и другие планируют способ сделать это возможным, так что следите за этим в будущем!

На аналогичном замечании: есть ли способ протестировать сценарии без необходимости каждый раз ждать 4 секундычтобы установить его?

Если вы используете Scriptish , то при установке задержка не будет.

0 голосов
/ 08 марта 2011

Попробуйте Venkman JS отладчик.Я не уверен, есть ли у него доступ к скриптам, но стоит попробовать.Еще одна вещь, которую нужно протестировать, - это открыть / включить Firebug и добавить несколько «отладчиков»;заявления, чтобы увидеть, если он поднимает его.Вот некоторые идеи, я их еще не проверял.

...