getElementById внутри iframe

Q: У меня есть iframe, вызывающий страницу X, на странице X есть div с id=test. Значение этого тестового элемента — «пузыри». На родительской странице мне нужно прочитать значение div и сохранить его как переменную javascript.

Результат: на родительской странице есть вывод document.write(iframedivvalue);, который будет = любому значению div внутри iframe.

Примечание:

  • на данный момент страница X находится в другом домене.
  • Я НЕ пытаюсь установить что-либо внутри iframe, просто прочитайте значение div.

person webmaster alex l    schedule 16.02.2011    source источник
comment
Вы по-прежнему будете заблокированы политикой одного и того же происхождения, если домены не совпадают. Не имеет значения, если вы просто пытаетесь получить значение.   -  person Alex    schedule 17.02.2011


Ответы (3)


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

person Alex    schedule 16.02.2011

Как говорит Алекс в комментарии выше, вы все равно будете заблокированы политикой JavaScript «того же происхождения».

Если ваш iframe находится в том же домене, вы можете попробовать следующее:

document.getElementById('iframe-id').contentDocument.getElementById('canvas');
person Meetai.com    schedule 30.06.2013

Предполагая, что iFrame имеет назначенный идентификатор:

var iframe_div = document.getElementById('iframeid').document.getElementById('mydiv');
var content = iframe_div.innerHTML;

Я верю, должно работать.

person Brad Christie    schedule 16.02.2011
comment
window.frames[0].document.getElementById(тест); также будет работать (при условии, что есть только один iframe. - person scrappedcola; 17.02.2011
comment
на данный момент страница X находится в другом домене. Решение не сработает - person The Scrum Meister; 17.02.2011
comment
@TheScrumMeister: я не знал, что это имеет значение (я полагаю, что видел, как сайты используют iframe/frames для автоматизации других сторон, используя баннеры вверху и исходный сайт внизу). Но если то, что вы говорите, верно, я ничего не могу сделать, чтобы изменить это. Но это правильный способ доступа к содержимому iFrame, к которому у вас есть доступ. - person Brad Christie; 17.02.2011