Как получить элемент из iframe - PullRequest
1 голос
/ 29 апреля 2011

Я хочу получить элемент из iframe, используя JavaScript. Я пробовал следующее:

var iframe = document.getElementById ("идентификатор iframe");

var iframeWindow = iframe.contentWindow || iframe.contentDocument.parentWindow;

 iframe.onload = function(){


        alert(iframeWindow.getElementById('notice'));

    };

Может кто-нибудь помочь мне заставить это работать?

с кросс-доменом

спасибо за ответ

Ответы [ 3 ]

3 голосов
/ 29 апреля 2011

Предполагается, что все в одном домене;

var ifr = document.getElementById('the_iframes_id');
//or window.frames[x].
var doc = ifr.contentDocument || ifr.contentWindow.document;
alert(doc.getElementById('notice'));

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

0 голосов
/ 03 января 2014
document.getElementById('iframeResult').contentWindow.document.getElementById('buttonId')

где iframeResult - это идентификатор iframe, а buttonId - это идентификатор элемента

0 голосов
/ 29 апреля 2011

Вам не повезло, если вы хотите сделать это через домены.Модель безопасности Javascript не позволяет этого.

Я не знаю, чего вы пытаетесь достичь, но вы можете получить то, что вам нужно, с помощью серверных сценариев.Сценарий Perl / PHP / Python / Ruby / любой другой, как правило, имеет возможность извлечения любой веб-страницы, которая вам понадобится.Затем он может проанализировать нужный вам бит и вернуть его в свой Javascript с помощью вызовов AJAX.

Конечно, это сложнее, чем просто использование JS, и предполагает, что содержимое iframe не является динамическим, на основе файлов cookie илидругие сессионные вещи в этот момент.

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