document.domain «В доступе отказано» проблемы с IE8 - PullRequest
5 голосов
/ 13 декабря 2010

В настоящее время я пытаюсь загрузить страницу в поддомене на мой основной домен, используя iframe, и заставить этот домен вызывать функцию javascript (когда она готова) в моем основном домене, чтобыосновной домен может изменить размер iframe в соответствии с высотой содержимого.Вот пример

www.mysite.com (код на странице):

<script type="text/javascript">
document.domain = "mysite.com";
function doSomething() {
    //do something
}
</script>
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe>

А для моего другого сайта, test.mysite.com, вот код на странице:

<script>
document.domain = "mysite.com";

$(document).ready(function () {
    window.parent.doSomething();
});
</script>

Похоже, что это нормально работает для Firefox, Safari и Chrome, но не для IE8.IE8 всегда выдает мне сообщение об ошибке «Отказано в доступе» при выполнении вызова window.parent.doSomething()

Я не смог протестировать IE7 или IE6, чтобы проверить, сохраняется ли проблема, но сталкивался ли кто-нибудь с этой проблемой?Я что-то упустил из-за того, как выкладываю код?

Спасибо за помощь, ребята.

Ответы [ 3 ]

2 голосов
/ 05 июля 2011

document.domain «Отказано в разрешении» проблемы с IE8 решено !!

точно так же, как сказал другой пользователь, просто установите тайм-аут через пару секунд после установки document.domain, где находится iframe на странице, а затем вызовите вторую страницу внутри iframe.

вам нужно установить значение SRC вашего iframe, через пару секунд после установки document.domain в IE8, и оно будет работать.

1 голос
/ 15 мая 2012

Я столкнулся с той же проблемой, и использование таймаута не решило проблему.

Поскольку у меня был другой сайт с похожими настройками, где все работало нормально, я открыл оба окна рядом и заметил встрока состояния внизу, в которой один находился в разделе «Локальная интрасеть», а другой - в разделе «Надежные сайты».

Это привело меня к другому пункту проверки: убедитесь, что оба субдомена появляются в одномЗона безопасности в Свойствах Internet Security Internet Explorer!Если этого не произойдет, у вас будет ошибка «Отказано в доступе».

1 голос
/ 13 декабря 2010

Вот ветка с множеством комментариев о нескольких возможных проблемах:

Обратите внимание , что я не проверял это, поскольку у меня нет IE. К сожалению, ни не кажутся убедительными с моей точки зрения - попробуйте и посмотрите, работает ли это для вас.

Итак, из приведенного выше поста, кажется, есть две возможные причины:

  • В сообщении утверждается, что IE требует, чтобы все документы имели одинаковый домен. Если у вас есть больше документов (iframes и т. Д.), Попробуйте удалить их и проверить только с этими двумя (основной и iframe)
  • См. Последний комментарий в посте - это может быть просто состояние гонки. Попробуйте поместить его в setTimeout с несколькими секундами ожидания после того, как на на обеих страницах будет установлено document.domain на одно и то же значение
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...