Я планирую написать сценарий Greasemonkey, который будет запускаться по определенному URL-адресу (@include или @match), но мне бы хотелось, чтобы он открыв одну или несколько дополнительных вкладок с тем же URL-адресом, Скрипт Greasemonkey НЕ будет запускаться на вторых (и последующих) дублирующих страницах.
Так, например, скажем, у меня есть скрипт Greasemonkey, который вносит изменения "стиля" в веб-страницу (или каким-то другим образом "изменяет" ее), когда я открываю «google.com». Я хочу иметь возможность открыть еще одну вкладку "google.com", где этот сценарий Greasemonkey не будет запускаться. Или, более правильно, будет работать, но обнаружит, что он уже запущен и "модифицирует" страницу на первой вкладке, а затем "выйти" на второй вкладке. Вторая вкладка останется открытой, но сценарий "не затронет ее".
Я не знаю, может ли скрипт Greasemonkey "увидеть" другие открытые вкладки, но если это возможно, моей первой мыслью было проверить, была ли еще загружена другая вкладка на эту страницу, а затем выйти, если обнаружит, что это так.
Но это должно быть немного более сложным, потому что:
- Если первая вкладка была закрыта, и для этого URL была открыта новая ("третья") вкладка, я бы хотел, чтобы скрипт Greasemonkey запускался и "изменял" эту страницу, как это было бы на первой странице.
- Аналогично, если я "обновлю" первую вкладку (скажем, после редактирования скрипта Greasemonkey или по другой причине), я бы хотел, чтобы скрипт Greasemonkey запускался и "изменял" перезагруженную страницу.
Таким образом, кажется, что сценарий Greasemonkey должен либо:
- Проверьте URL каждой вкладки, чтобы найти "совпадение", а затем "Заглянуть на эту вкладку", чтобы увидеть, "сценарий" Greasemonkey "активно" изменяет эту страницу (возможно, искать скрытый, пустой, с именем "DIV" или другой элемент).
- Использовать какое-то "локальное хранилище" или «глобальный кросс-таб (суперглобальный?) переменные ", чтобы отслеживать вкладки, когда они открываются и закрываются.
Я не ищу кого-то, кто написал бы этот сценарий для меня, я чувствую, что способен написать сценарий, если бы я знал, как сделать несколько вещей. Если сценарий, который выполняет все или большую часть этого, уже существует, то это тоже было бы здорово.
Чтобы начать, мне нужно знать, если (и как) скрипт Greasemonkey:
- Можно "увидеть" другие вкладки.
- Можно прочитать URL-адреса (и, возможно, текст заголовка) других вкладок.
- Проверьте наличие (и, возможно, прочитанных, но не записанных) элементов на другой вкладке.
- Управление "локальным (компьютерным) хранилищем" или управление "глобальными переменными кросс-таблицы" (если это вообще возможно).