0

Итак, вот сделка. У нас есть приложение Flash, которое работает в HTML-файле. Для одной страницы мы вызываем устаревшую систему отчетности в ASP.NET, которая находится в пределах IFRAME. Эта страница затем передает обратно в приложении флэша с использованием междоменных сценариев (document.domain = «домен» устанавливаются в обеих страницах.История отслеживания IE, IFRAMES и ошибка кросс-домена

ЭТО ВСЕ РАБОТАЕТ.

Теперь кикер. Вспышка имеет включено отслеживание истории. Это загружает файл history.js, который создал Div тег изменений магазин страницы так назад и вперед кнопки работают в браузере.

который работает для Firefox и Chrome, поскольку они создают Div тег.

ОДНАКО

В Internet Explorer history.js создает еще один IFRAME (вместо DIV), называемый ie_historyFrame. Когда код ScriptResource.axd пытается получить доступ к этому с:

var frameDoc = this._historyFrame.contentWindow.document; 

мы получаем «доступ запрещен» сообщение об ошибке. ARGH!

  • Мы попытались получить дескриптор этого IFRAME и вставить код document.domain. ПОТЕРПЕТЬ НЕУДАЧУ.
  • Мы попытались отредактировать файл historytemplate.html, который также использует flex.domain ... FAIL.
  • Я попытался отредактировать базовую страницу ASP.NET, чтобы отключить историю отслеживание в ScriptManager управление. ПОТЕРПЕТЬ НЕУДАЧУ.

В конце моего остроумия на этом. У нас есть пользователи, которым необходимо использовать IE для доступа к этому сайту. Это большие клиенты, которых мы не можем просто использовать Firefox.

Любые предложения были бы весьма полезными.

+0

Вам нужно управлять историей во Flash-приложении? Используется ли он? Вы можете отключить его с помощью параметра компилятора. –

+0

Почему вы не добавили код 'document.domain =' в 'ie_historyFrame'? –

ответ

0

Я понимаю, что это сценарий последней очереди, но вы должны подумать о том, чтобы сделать так, что IE может оказаться невозможным для поддержки. Вам понадобятся объективные доказательства, некоторые примеры, которые ясно показывают проблему, и хорошо отрепетированный сюжет о преимуществах остальных стандартов, удовлетворяющих, а не кодировании специально для (вероятно, устаревшей) версии IE.

Это никогда не гарантируется, но если вы можете убедить их в том, что существуют объективные выгоды, которые снижают как краткосрочные, так и долгосрочные издержки, тогда стоит попробовать - просто помните, что для многих клиентов речь идет о бизнес-футляре и а не техник.

0

Не уверен, но посылая этот заголовок от сервера может работать:

// in PHP... 
header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"',true); 

Я использовал его для установки куки JS кода в IFRAME.

Смежные вопросы