Как получить элемент управления из iFrame, используя Javascript ИЛИ jQuery - PullRequest
2 голосов
/ 27 марта 2019

Мы загружаем сторонний iframe на нашу html-страницу.Мы загружаем это в одном конкретном div.До этого этапа он работает успешно.Однако, следующее, что мы хотим найти элементы управления, которые загружены внутри iFrame.Кроме того, iFrame не имеет никакого идентификатора, связанного с ним.

Из-за отсутствия идентификатора iFrame мы попробовали, как показано ниже, сначала получить iframe

var objiframe = $('#divContainer').find('iframe');

Итак, мы получаемОбъект iFrame, но мы не можем найти какие-либо элементы управления, которые находятся в iFrame.

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

var iFrameDOM = $(objiframe).contents();
var control = $(iFrameDOM).find("#duedate");

var data = objiframe.contentWindow.document.getElementById('duedate');

Но почему-то мы не получаемэлементы управления или там идентификатор.В большинстве случаев мы получаем 'undefined' или 'Cannot read property' contentWindow 'of null'

Любая помощь по этому вопросу приветствуется

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Если iFrame находится в другом домене, чем ваш, вы будете ограничены, и единственный способ связаться с iframe - это использовать API веб-сообщений .

Таким образом, вы должны проверить, какие функции предоставляет iFrame.

Эта статья может помочь вам понять, что можно делать или не делать с вашим сторонним iFrame.

0 голосов
/ 27 марта 2019

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

Доступ к дочернему iframe может сработать, но, скорее всего, не сработает.

Самый простой способ - через объект рамок в окне:

window.frames[0].document.getElementById('ElementId').style.backgroundColor="#000";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...