Pergunta

É possível encontrar instâncias estrangeiras de determinado site? OFC Theese são guias abertas de forma independente (não por window.open). Preciso impedir que o usuário abra 2 guias e envie uma mensagem para a guia aberta anteriormente para informar que é impossível abrir 2 guias. 2 guias Intependentes podem quebrar a página de armazenamento offline e a estrutura WebSQL, para que eu não possa permitir que as pessoas usem 2 guias. Também é um aplicativo semi-offline, por isso precisa ser uma solução do lado do cliente.

Foi útil?

Solução

Você pode se comunicar em guias usando o LocalStorage. Toda vez que você escreve um valor, um evento de "armazenamento" é disparado no objeto da janela em cada guia (exceto a atual).

http://diveintohtml5.info/storage.html

Role para baixo para "rastrear mudanças na área de armazenamento HTML5"

O evento incluirá event.key, event.newValue, event.oldValue.

Isso funciona apenas em navegadores modernos.

Outras dicas

Em 2021, você pode usar o serviço de serviço:

https://github.com/gyteng/service-worker-event

Aviso: o funcionário do serviço só funciona em https protocolo

LocalStorage pode ser usado para rastrear o Windows. Você deve levar em consideração uma situação quando a janela falhar - ela deixará o lixo no localStorage. O acesso a um recurso comum de vários Windows simultaneamente pode ser feito pelo Mutex com base no LocalSorage.

Eu publiquei recentemente o Biblioteca de comunicação entre residências (Todos os recursos são descritos no ReadMe). Ele fornece compartilhamento de dados seguros para roscas, bloqueios de janela cruzada e transmissão de eventos. Ele também resolve alguns problemas do IE.

O canal de transmissão é design para issohttps://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api

Mas a API nativa suporta apenas navegadores modernos. Há um pacote NPM suporta todos os navegadores antigos tambémhttps://www.npmjs.com/package/broadcast-channel

Você não tem controle sobre isso. O usuário pode fazer basicamente o que quiser no computador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top