Установите `top.location === location` в фрейме mx: HTML (и прочитайте его междоменное значение) - PullRequest
1 голос
/ 23 марта 2011

Я на 99,99% уверен, что этого нельзя сделать ...

Допустим, у меня есть элемент <mx:HTML /> в моем настольном приложении Flex w / Air 2.6 с его набором srcдо example.com.Этот HTML-элемент содержит один iframe, который src равен facebook.com.

. Теперь Facebook не любит, когда его подставляют.По сути, он проверяет, находится ли его document.location == top.location

Итак, мне нужно установить top = document; (или window, в зависимости от того, что это может быть) в iframe.Да, и top должен оставаться равным document iframe, когда пользователь переходит на другую страницу / домен.

В качестве бонуса я хотел бы иметь возможность читать местоположение текущего документа изВоздушное приложение.

У кого-нибудь есть идеи, можно ли это сделать?

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Краткое содержание: невозможно.

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

Если вы создаете браузер, я предлагаю вам создать то, как браузер выглядит на самом делеСамо приложение AIR, а не во вложенных iframes.

AFAIK, единственный способ успешно создать браузер полностью в HTML / CSS / JS - это использовать веб-прокси или скребок для экрана, и это открываетновая банка с червями.

0 голосов
/ 23 марта 2011

Чего вы пытаетесь достичь с помощью этого iframe?Ваш метод кажется мне очень хакерским;в любом случае это проблема javascript / html, а не проблема с Air.

Если вы хотите узнать текущее местоположение iframe, это так же просто, как вызвать функцию Javascript в html, который в настоящее время отображается вHTML-компонент выглядит так:

htmlComponent.htmlLoader.window.someJSFunction();

Я думаю, это должно быть в состоянии вернуть вам строку, но я не на 100%.

...