Как заставить междоменную связь работать в iframes? - PullRequest
1 голос
/ 22 декабря 2010

У меня есть онлайновая справочная система на основе iframe, которая хорошо работает годами.С IE8 это подавляет некоторые из javascripting, который вызывает location.toString ().Этот же код прекрасно работает в IE6.

В частности, код:

var iss = parent.left.location.toString();
var isInd = iss.indexOf("indexframe");

Я получаю сообщение об ошибке «Отказано в доступе».Я считаю, что проблема связана с междоменной связью, которую я не совсем понимаю.Весь пакет выполняется локально с использованием локальных файлов HTML и javascript.Я не пытаюсь, чтобы кадр в одном домене контролировал кадр в другом домене.Или, может быть, я далеко от основания, предполагая, что это проблема.

Может ли кто-нибудь помочь мне понять, что мне нужно сделать, чтобы обойти эту проблему?

Ответы [ 3 ]

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

Если iFrame и родительский документ находятся в одном домене, вы не должны получать эту ошибку.Мне подсказывает, что документы находятся в разных доменах.

Если Iframe находится в www.mydomain.com , а документ находится в help.mydomain.com ВЫ ПОЛУЧИТЕ ОШИБКУ!Страницы должны думать, что они находятся в одном и том же домене.

В оба документа вы можете добавить javascript для набора доменов:

document.domain = "mydomain.com";

Javascript позволит вам перейти в домен хостаобе страницы.Это позволяет вам общаться через кадры.Конечно, если страницы находятся в разных доменах HOST, это не сработает, и javascript выдаст ошибку.

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

Обычно при доступе к содержимому другого iframe я использую что-то вроде этого:

0 голосов
/ 22 декабря 2010

Если у вас действительно есть доступ к 2 доменам с вашего сайта, и , которым вы владеете обоими, вы можете создать xml-файл, в котором будет указано, каким доменам разрешено делиться. См. документ спецификации . Этот дополнительный межсайтовый доступ поддерживается не только Adobe (MS Silverlight для одного). Вот спецификация поддержки Silverlight .

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