Safari Localstorage та же страница, но отличается, когда используется в качестве iframe - PullRequest
0 голосов
/ 30 марта 2020

Я незнаком с поведением этого сафари. Поэтому я разрабатываю приложение React, в котором есть две страницы, одна из которых должна открываться из iframe, а другая должна открываться сама.

Пусть это будет https://sub.main.com/myApp/iframe и https://sub.main.com/myApp/landing.

Сначала я открою https://main.com/, которые содержат https://sub.main.com/myApp/iframe в качестве фрейма. тогда https://sub.main.com/myApp/iframe установит локальное хранилище для https://sub.main.com, скажем {City: "A"}.

Затем я обновляю локальное хранилище на https://sub.main.com/myApp/landing, я заметил, что в локальном хранилище нет записи для https://sub.main.com, затем я создаю новую запись здесь, скажем, {City: "B"}

Когда я пытаюсь заново открыть https://main.com/, которые содержат iframe https://sub.main.com/myApp/iframe, я отметил, что значение 'city' для https://sub.main.com по-прежнему равно "A", но затем я открываю https://sub.main.com/myApp/iframe непосредственно в новой вкладке, и значение 'city' равно "B", syn c с https://sub.main.com/myApp/landing one.

Может кто-нибудь объяснить это поведение, как одно и то же локальное хранилище с адресом https://sub.main.com может отличаться при использовании в качестве iframe, а не? Кстати, я проверил, что это поведение не существует на chrome и firefox, как ожидаемое поведение, когда я изменяю значение хранилища в https://sub.main.com/myApp/landing соответствующих это значение также обновляется до iframe.

Также обратите внимание, что я не собирался изменять кросс-хранилище поддоменов, так как я обновляю локальное хранилище для https://sub.main.com а не https://main.com во всех сценариях.

Заранее спасибо, ребята, я несколько часов искал без результата, поэтому мне пришлось спросить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...