Подтвердить что ты не робот

Доступ к элементам iframe в JavaScript

У меня есть веб-страница, где есть текстовое поле внутри iframe. Мне нужно прочитать значение этого текстового поля со своей дочерней страницы с помощью JavaScript.

В настоящее время с помощью window.parent.getelementbyID().value в JavaScript я могу получить значения всех элементов управления на родительской странице, кроме текстовой области внутри iframe.

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

4b9b3361

Ответ 1

Если ваш iframe находится в том же домене, что и ваша родительская страница, вы можете получить доступ к элементам с помощью коллекции document.frames.

// replace myIFrame with your iFrame id
// replace myIFrameElemId with your iFrame element id
// you can work on document.frames['myIFrame'].document like you are working on
// normal document object in JS
window.frames['myIFrame'].document.getElementById('myIFrameElemId')

Если ваш iframe не находится в том же домене, браузер должен предотвратить такой доступ по соображениям безопасности.

Ответ 2

Вам нужно получить доступ к кадрам из window, а не document

window.frames['myIFrame'].document.getElementById('myIFrameElemId')

Ответ 3

window.frames['myIFrame'].document.getElementById('myIFrameElemId')

не работает для меня, но я нашел другое решение. Использование:

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')

Я проверил его на Firefox и Chrome.

Ответ 4

этот код работал у меня:

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId');

Ответ 5

Убедитесь, что ваш iframe уже загружен. Старый, но надежный способ без jQuery:

<iframe src="samedomain.com/page.htm" id="iframe" onload="access()"></iframe>

<script>
function access() {
   var iframe = document.getElementById("iframe");
   var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
   console.log(innerDoc.body);
}
</script>