O Greasemonkey não pode:
- Veja outras guias.
- Verifique os URLs de outras guias.
- Verifique se há nós / elementos DOM em outras guias.
O motivo é que o Greasemonkey, o Tampermonkey, etc. não expõem essas APIs a / para scripts de usuários.
(Completas extensões de navegador podem fazer todas essas coisas.)
Greasemonkey pode:
- Cruze a comunicação entre instâncias de script usando
GM_setValue()
Doc eGM_getValue()
Doc . - Às vezes, você também pode usar
.postMessage()
. ( Exemplo )
Isso provavelmente só funcionará se você usarwindow.open
para criar a nova guia. - Como você está no mesmo domínio, também é possível usar
localStorage
ou cookies para comunicação cruzada. - Finalmente, se as novas guias forem abertas na guia principal, você se comunicará com a nova guia por meio de parâmetros de URL (ou o hash). Veja este userscript para um exemplo disso. (Observe como os links do SEMC são tratados.)
I'm not looking for someone to write this script for me, I feel I'm capable of writing the script if I knew how to do a few things. If a script that does all or most of this already exists then that would be great too.
Todos os bits e peças foram abordados no Stack Overflow, mas não em nenhuma pergunta que eu me lembre.
Se você usar variáveis para se comunicar (métodos 1 ou 3), certifique-se de ter algo como um manipulador de eventos beforeunload
para limpar as variáveis antes que a página mestra seja fechada.