Question

Est-il possible de trouver des instances étrangères de certains sites Web? OFC Theese est des onglets ouverts indépendamment (pas par fenêtre.Open). Je dois empêcher l'utilisateur d'ouvrir 2 onglets et envoyer un message à l'onglet précédemment ouvert pour informer qu'il est impossible d'ouvrir 2 onglets. 2 onglets Inteplex peuvent casser la page de stockage hors ligne de la page et de la structure WebSQL, afin que je ne puisse pas autoriser les gens à utiliser 2 onglets. C'est également une application semi-offline, il doit donc être une solution côté client.

Était-ce utile?

La solution

Vous pouvez communiquer entre les onglets à l'aide de LocalStorage. Chaque fois que vous écrivez une valeur, un événement "Stockage" est tiré sur l'objet Window sur chaque onglet (sauf celui actuel).

http://diveintohtml5.info/storage.html

Faites défiler vers le bas pour "suivre les changements dans la zone de stockage HTML5"

L'événement comprendra event.key, event.newValue, event.oldValue.

Cela ne fonctionne que dans les navigateurs modernes.

Autres conseils

En 2021, vous pouvez utiliser le service de service:

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

Avis: le travailleur des services travaille uniquement dans https protocole

LocalStorage peut être utilisé pour suivre les fenêtres. Vous devriez prendre en compte une situation lorsque la fenêtre s'écrase - elle laissera les ordures dans LocalStorage. L'accès à une ressource commune à partir de plusieurs fenêtres peut être effectuée par mutex basé sur LocalStorage.

J'ai récemment publié le Bibliothèque de communication interwindow (Toutes les fonctionnalités sont décrites dans Readme). Il fournit un partage de données en filetage, des verrous croisés et une diffusion d'événements. Il résout également certains problèmes.

La chaîne de diffusion est le design pour celahttps://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api

Mais l'API native ne prend en charge que les navigateurs modernes. Il y a également un package NPM, tous les anciens navigateurshttps://www.npmjs.com/package/broadcast-channel

Vous n'avez pas le contrôle à ce sujet. L'utilisateur peut faire essentiellement tout ce qu'il veut sur l'ordinateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top