В стандартном стандарте W3C говорится о локальных хранилищах:
Различные авторы используют одно имя хоста, например, пользователи, размещающие контент на
geocities.com
, все используют один локальный объект хранения. Нет возможности ограничить доступ по имени пути. Поэтому авторы на общих хостах должны избегать использования этих функций, так как другим авторам было бы тривиально читать данные и перезаписывать их.
Но для sessionStorages он сказал, что он предоставляет отдельные sessionStorages для вкладок и окон даже из одного источника.
Но похоже, что iframes действительно разделяет sessionStorage.
Есть ли способ иметь отдельные сеансовые записи с помощью iframes в одном и том же источнике.
Изменить: Поскольку возникла путаница, если вкладки/окна имеют отдельные sessionStorages, вот примерная страница. Сохраните код в файле и откройте его двумя разными вкладками. Затем обновите одну вкладку 5 раз и обновите другую вкладку 1 раз. Вы увидите, что цифры отличаются.
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<script>
sessionStorage.setItem("counter", (parseInt(sessionStorage.getItem("counter"), 10) || 0 ) + 1);
document.getElementById("result").innerHTML = sessionStorage.getItem("counter");
</script>
</body>
</html>
Edit2: Я пытался использовать атрибут iframe sandbox
. Но потом я получил ошибку в iframe, и я не могу использовать sessionStorage вообще. Мне пришлось добавить sandbox="allow-same-origin"
. Но затем sessionStorage снова во всех iframe.
Спасибо заранее.