Я разместил это как отдельный ответ, поскольку он не связан с моим существующим ответом.
Эта проблема недавно снова возникла для доступа к родительскому элементу из iframe, ссылающегося на поддомен, и существующие исправления не работали.
На этот раз ответом было изменить то, что document.domain родительской страницы и iframe были одинаковыми. Это обманет тех же проверок политики происхождения , что они сосуществуют в одном и том же домене (субдомены считаются другим хостом и не проходят ту же проверку политики происхождения).
Вставьте следующее в <head>
страницы в iframe, чтобы соответствовать родительскому домену (с учетом вашего типа документа).
<script>
document.domain = "mydomain.com";
</script>
Обратите внимание, что это приведет к ошибке при разработке localhost, поэтому используйте проверку, подобную следующей, чтобы избежать ошибки:
if (!window.location.href.match(/localhost/gi)) {
document.domain = "mydomain.com";
}