На вкладке с URL http://foo.com/ настроить позицию sessionStorage thus-Как предотвратить унаследование sessionStorage при использовании target = "_ blank" /window.open(), чтобы открыть новое окно/вкладку?
sessionStorage.bar="hello";
я затем открыть новое окно на любом пути на том же домене -
window.open("http://foo.com/any/path");
Затем на новом окне я нахожу что -
sessionStorage.bar === "hello"
Это правда. То же самое происходит, если я использую ссылку с атрибутом target = "_ blank", чтобы открыть новое окно. То же самое происходит и при открытии новой вкладки, а не в новом окне. Другое дело, что это верно только для элементов, установленных на sessionStorage, прежде чем открывать новое окно. Добавление или изменение любого элемента в sessionStorage в обоих окнах после открытия нового окна никак не влияет на другое окно.
Я думал, что sessionStorage должен быть привязан к одной вкладке/окну, но, видимо, sessionStorage распространяется на новые вкладки и окна, когда они открываются из другого окна.
Есть ли способ предотвратить это? Вероятно, я могу проверить наличие window.opener, чтобы обнаружить такой случай, но было бы намного чище, если бы можно было предотвратить его в первую очередь.
Спасибо!
sessionStorage предназначен для сеанса, отсюда и название. Не важно, на какой вкладке у вас есть. –
@JeremyMiller, спасибо за ваш комментарий, не могли бы вы рассказать подробнее? Как определяется сеанс? [MDN] (https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage) просто говорит, что «Открытие страницы в новой вкладке или окне приведет к тому, что новый сеанс будет инициатор «. – odedbd
Хмм ... Я, должно быть, ошибся. Теперь проверьте детали. –