В этом примере статьи описывается метод встроенной детской страницы iframe и родительской страницы JS. Поделитесь этим для вашей ссылки. Конкретный анализ заключается в следующем:
Метод связи между страницей и основной страницей в фреймворке iframe, очевидно, отличается в зависимости от того, связан ли атрибут SRC в IFRAME с одной и той же доменной или перекрестной ссылкой. Обмен данными и Mutual Access в одном и том же домене гораздо проще, в то время как междомен требует некоторых умных способов достижения связи.
1. Общение между страницами отца и сына под одной и той же доменом
Родительская страница parent.html:
Скопируйте код следующим образом: <html>
<голова>
<script type = "text/javascript">
функция говорит () {
Alert ("parent.html ------> Я в parent.html");
}
Функция callchild ()
{
//document.frames="myframe"цин.window.say();// или только к браузеру IE.
myframe.window.say ();
myframe.window.document.getElementbyId ("button"). value = "Я изменил";
}
</script>
</head>
<тело>
<input type = кнопка value = "callchild ()">
<iframe name = "myframe" src = "child.html"> </iframe>
</body>
</html>
Subpage Child.html:
Скопируйте код следующим образом: <html>
<голова>
<script type = "text/javascript">
функция говорит ()
{
Alert ("Child.html ---> Я в child.html");
}
function callparent () {
parent.say ();
parent.window.document.getelementsbyname ("myframe") [0] .style.height = "100px";
}
</script>
</head>
<тело>
<input id = "кнопка" type = value = "Вызов функции same () в parent.html" onclick = "callparent ()">
</body>
</html>
Метод вызов
Как показано в приведенном выше примере, метод вызова детской страницы родительской страницы может использоваться: frameName.window.childmethod (); (Этот метод совместим с различными браузерами)
Метод детской страницы, вызывающая родительскую страницу: parent.window.parentmethod ();
Доступ к элементам DOM
После получения детского окна объекта в соответствии с FrameName.Window, доступ к элементу DOM не отличается от доступа к элементу DOM на одной и той же странице. Вы можете скопировать код следующим образом: document.getElementById (), document.getElementsByname () [index] Например, скопируйте код следующим образом: parent.window.document.getElementsbyname ("myframe") [0];
myframe.window.document.getElementById («Кнопка») Windows может быть опущено.
Что следует отметить
Чтобы убедиться, что операция выполняется после загрузки IFRAME, если IFRAME не загружен, это, несомненно, вызовет ошибку. Есть два способа определить, был ли iframe загружен:
1. Используйте событие Onload на iframe;
2. Используйте Document.ReadyState == «Завершить», чтобы судить
2. Метод связи между доменом родителей-сын
Если iframe связывает внешнюю страницу, метод связи под одним и тем же доменным именем не может использоваться из -за механизма безопасности.
Родительская страница передает данные на дочерние страницы
Метод реализации состоит в том, чтобы использовать хеш -значение объекта местоположения и передавать данные связи через него. Нам нужно добавить дополнительную строку #Data только после SRC IFRAME (данные - это данные, которые вы хотите передать), а затем получить данные определенным образом на детской странице. На самом деле, общим методом является:
1. Установите таймер на подпадке, используя метод SetInterval для прослушивания изменений в местоположении. Href для получения вышеуказанной информации данных
2. Затем подпада может выполнять соответствующую логическую обработку на основе этой информации данных.
Страница ребенка передает данные на родительскую страницу
Метод реализации состоит в том, чтобы использовать прокси IFRAME C, который встроен на детскую страницу и должна оставаться в том же домене, что и родительская страница. Затем мы можем передать данные о детской странице IFRAMEC, используя его, чтобы полностью использовать принцип реализации первого метода связи выше. Следующий вопрос заключается в том, как позволить Iframec передать данные на главную страницу A. Поскольку iframec и основная страница находятся в одном домене, становится гораздо проще передавать данные между ними, что является проблемой связи под тем же доменным именем. Как обсуждалось ранее, здесь вы можете использовать часто используемое windoplop. Top (также может использовать Window.parent.parent), что возвращает ссылку на объект окна верхнего уровня, загруженный в браузер, чтобы мы могли напрямую использовать метод на родительской странице.
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.