Доступ к переменным в iFrame или наоборот - PullRequest
1 голос
/ 18 июня 2009

У меня есть HTML-страница с iFrame, из которого я хочу прочитать несколько переменных. В основном это карта, из которой я хочу получить значения широты и долготы.

Я работал над Adobe AIR и пытался извлечь значения из innerHTML, contentWindow, но все еще не смог заставить это работать.

Есть ли хорошие способы сделать это?

Ответы [ 6 ]

1 голос
/ 19 июня 2009

Модель безопасности браузера запрещает любой междоменный трафик / связь. Правила могут быть смягчены, если мы имеем дело с разными поддоменами, в верхний домен. Но в конечном итоге у вас нет возможности обратиться за помощью.

Если у вас есть приложения, которым нужно общаться через границы домена, лучше всего выбрать бэкэнд. Если вы не контролируете контент в iframe, вам обычно не везет. К вашему сведению, карты Google предоставляют API для использования своего приложения. http://code.google.com/apis/maps/index.html

0 голосов
/ 02 февраля 2010

Я должен был сделать это так:

1- Добавление скрытых входных данных в файл, содержащий iframe, где они сохраняют lng и lat всякий раз, когда пользователь изменяет их.

2 - Создать эту функцию на js:

function getFrameWindow(frameId) {

  var frame = document.getElementById(frameId);
  var result = null;
  if (frame.contentDocument) {
    // For NS6
    result = frame.contentDocument.window || frame.contentDocument.defaultView; 
  } else if (frame.contentWindow) {
    // For IE5.5 and IE6
    result = frame.contentWindow;
  } else if (frame.document) {
    // For IE5
    result = frame.document.window;
  }
  return result;
}

3 - использовал этот код из JavaScript, который содержит iframe:

getFrameWindow("iframe").document.getElementById("lat").value
0 голосов
/ 23 июня 2009

Приложение для неиспользуемого моста изолированной программной среды работало в случае междоменной связи.

Спасибо за ответы, ребята ..

0 голосов
/ 22 июня 2009

Спасибо за ответ, ребята,

@ svend: Что именно происходит через бэкэнд? Я получаю это .. Я управляю контентом в iFrame, который находится в другом домене.

@ Уэббер: Спасибо за эту ссылку, Уэббер ... Похоже, мне это удастся ... Я попробую ...

0 голосов
/ 21 июня 2009

Вы должны использовать приложение для моста приложения без песочницы. Это позволит вам общаться между двумя областями (iframe и общая). Взгляните сюда http://www.adobe.com/devnet/air/ajax/quickstart/sandbox_bridge.html

0 голосов
/ 18 июня 2009

Вы можете использовать jQuery для доступа к содержимому внутри iframe.

<iframe id="iframeId" ...> .... <div id='someData'>data</div> ....</iframe>
$('#iframeId').contents().find('#somedata').html(); // returns data
...