Скрипты не могут напрямую взаимодействовать друг с другом, а // @namespace
просто разрешает скрипт< /em> конфликты имен. (То есть у вас может быть 2 разных скрипта с именем «Удаление ссылок», только если у них разные пространства имен.)
Отдельные сценарии могут обмениваться информацией, используя:
- Файлы cookie -- работают только в том же домене
localStorage
-- работает только в том же домене
- Отправка и получение значений через AJAX на сервер, которым вы управляете, — работает междоменно.
Вот и все.
Различные запущенные экземпляры одного и того же скрипта могут обмениваться информацией с помощью GM_setValue()
и GM_getValue()
. Преимущество этого метода заключается в том, что он является междоменным, простым и невидимым для целевой веб-страницы.
См. этот рабочий пример взаимодействия между таблицами в Tampermonkey.
В Chrome и только в Chrome вы можете использовать нестандартные API файловой системы для хранения данных в локальном файле. Но это, вероятно, потребовало бы, чтобы пользователь нажимал на каждую транзакцию — если бы это вообще работало.
Другой вариант — написать расширение (надстройку), которое будет действовать как помощник и выполнять файловый ввод-вывод. Обычно вы взаимодействуете с ним через postMessage
.
На практике я никогда не сталкивался с ситуацией, в которой не было бы проще и чище просто объединить любые скрипты, которым действительно нужно обмениваться данными.
Кроме того, скрипты не могут совместно использовать код, но они могут внедрить JS на целевую страницу и получить к ней доступ.
Наконец, AFAICT, сценарии всегда выполняются последовательно, а не параллельно. Но вы можете управлять порядком выполнения на панели Управление пользовательскими сценариями.
person
Brock Adams
schedule
11.08.2011