Эта ошибка не является ошибкой.Политика того же происхождения - это механизм безопасности, который гарантирует, что оконные объекты имеют доступ только к той информации, которую им разрешено получать.В вашем случае это включает в себя доступ к opened.location
.
. После создания обе вкладки имеют одинаковое происхождение, что позволяет первой получить доступ к opened.location
.Но после звонка на document.domain='www.google.com'
они больше не нужны.
«Что? Но на обеих вкладках window.location.origin
идентичны»
Да, ноэто немного сложнее.Источник определяется схемой / хостом / портом, подробности см. В ответе @ TheUnknown.Схема и хост остаются неизменными, и они включены в строку window.location.origin
.
Хитрость, которую нужно знать, - это любой вызов document.domain
, включая document.domain = document.domain
вызывает перезапись номера порта на null
, что приводит к различию в происхождении двух вкладок и не позволяет им передавать информацию, такую как opened.location
, друг с другом, что приводит к ошибке.
Информация, извлеченная из руководства MDN по политике того же происхождения