Frage

Ist es möglich, ausländische Instanzen bestimmter Website zu finden? OFC -thesee werden unabhängig geöffnete Registerkarten (nicht nach window.open). Ich muss den Benutzer daran hindern, 2 Registerkarten zu öffnen und eine Nachricht an zuvor geöffnete Registerkarte zu senden, um mitzuteilen, dass es unmöglich ist, 2 Registerkarten zu öffnen. 2 Intendendige Registerkarten können den Offline -Speicher- und Websql -Struktur brechen, sodass ich nicht erlauben kann, 2 Registerkarten zu verwenden. Es ist auch eine halbübergreifende App, daher muss es eine clientseitige Lösung sein.

War es hilfreich?

Lösung

Sie können über Lokalstorage über Registerkarten hinweg kommunizieren. Jedes Mal, wenn Sie einen Wert schreiben, wird auf jeder Registerkarte ein "Speicherereignis" auf das Fensterobjekt abgefeuert (mit Ausnahme des aktuellen).

http://diveIntohtml5.info/storage.html

Scrollen Sie nach unten zu "Verfolgung von Änderungen im HTML5 -Speicherbereich".

Die Veranstaltung wird enthalten event.key, event.newValue, event.oldValue.

Dies funktioniert nur in modernen Browsern.

Andere Tipps

Im Jahr 2021 können Sie Servicearbeiter verwenden:

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

Bekanntmachung: Servicearbeiter arbeitet nur in https Protokoll

LocalStorage kann zum Verfolgen von Windows verwendet werden. Sie sollten eine Situation berücksichtigen, wenn das Fenster abstürzt - er lässt den Müll in LocalStorage. Der Zugriff auf eine gemeinsame Ressource aus mehreren Fenstern, die gleichzeitig auf der Grundlage von LocalStorage basiert, kann von Mutex erfolgen.

Ich habe kürzlich die veröffentlicht Interwindow Communication Library (Alle Funktionen sind in Readme beschrieben). Es bietet Thread-Safe-Datenaustausch, Cross-Window-Sperren und Event-Sendungen. Es löst auch einige IE -Probleme.

Broadcast Channel ist Design dafürhttps://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api

Aber die einheimische API unterstützt nur moderne Browser. Es gibt auch eine NPM -Paketunterstützung alle alten Browserhttps://www.npmjs.com/package/broadcast-channel

Sie haben keine Kontrolle darüber. Der Benutzer kann im Grunde genommen alles tun, was er/sie auf dem Computer will.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top