Gibt es einen Browserspeicher, der nur von der Seite verwendet werden kann, auf der er erstellt wurde?Browser Tab Speicher?
Ich mache ein TamperMonkey-Skript, um meine Arbeit zu automatisieren. Es wird ausgelöst, wenn eine Seite aus einer bestimmten Domäne geöffnet wird. Es würde dann einen bestimmten Link (dieselbe Domain) in der genannten Seite finden und es in derselben Registerkarte öffnen. Wenn die neu geöffnete Seite einer Bedingung entspricht, würde sie auf die vorherige Seite zurückgehen (um manuell überprüft zu werden). Wenn nicht, würde es sich selbst schließen.
Ich habe localStorage verwendet, um zu markieren, ob eine Seite versucht hat, diese Überprüfung durchzuführen. Andernfalls würde das Skript die Verknüpfung erneut öffnen, wenn die Originalseite geladen und in einer Schleife gefangen ist.
Das Skript läuft reibungslos, wenn nur eine einzige Registerkarte ausgeführt wird. Aber es scheitert oft, wenn ich mehrere Tabs (alle in der gleichen Domäne) ausführen. Ich nehme an, dass jede Registerkarte auf die gleiche localStorage zugreifen konnte, wodurch die Loop-Prüfung gestört wurde. Ich habe trotzdem nicht gefunden, dass ich jedem LocalStorage einer Registerkarte einen eindeutigen Namen über das gleiche Skript gebe.
Als solche, ich brauche einen Browser-Speicher, der von einem Tab verwendet werden konnte, auch nachdem es eine neue URL in der gleichen Domäne geöffnet, aber nicht von einem anderen Tab mit derselben Domain verwendbar.
Suchen Sie nach so etwas wie [ 'sessionStorage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage) ? – Kaiido
Ich habe den Eindruck, dass sessionStorage einfach localStorage ist, das gelöscht wurde, nachdem eine Sitzung vorbei ist. Gibt es einen anderen Unterschied zwischen den beiden? –
gut für Ihren Fall, ja. Sitzungen werden nur zwischen dem Hauptfenster und den von ihm geöffneten Fenstern geteilt. – Kaiido