Что такое window.origin
? Кажется, это не задокументировано в обычном месте .
Похоже, это может быть очень похоже на window.location.origin
- например, здесь, при переполнении стека, оба возвращают
https://stackoverflow.com
Но внутри iframe
они разные:
console.log(window.location.origin);
console.log(window.origin);
https://stacksnippets.net
null
Встроенный фрагмент находится внутри iframe
без allow-same-origin
. Например, если вы измените iframe, измените HTML-код переполнения стека и добавите атрибут вручную:
<iframe name="313b857b-943a-7ffd-4663-3d9060cf4cb6" sandbox="allow-same-origin allow-forms allow-modals allow-scripts" class="snippet-box-edit" frameborder="0" style="">
^^^^^^^^^^^^^^^^^^
и затем запустить фрагмент, вы получите:
https://stacksnippets.net
https://stacksnippets.net
Такое же поведение проявляется на других сайтах с <iframe>
с.
Google не имеет каких-либо авторитетных ссылок на эту тему. Поиск точной фразы + Javascript дает много результатов, связанных с iframe
s и postMessage
, но нет точного описания того, что window.origin
на самом деле является .
Вызов postMessage
от дочернего iframe
приводит к тому, что родительское окно получает сообщение со свойством origin
, соответствующим window.origin
дочернего фрейма - без allow-same-origin
, это null
, в противном случае похоже, это то же самое, что и window.location.origin
ребенка.
Это то, что я думаю Я понял из догадок и проверок, но я не уверен в этом. Буду признателен за подтверждение / объяснение, желательно со ссылкой на авторитетный источник.