Доступ к элементам родительского окна из iframe
у меня есть страница, которую мы можем назвать родительской.РНР. На этой странице у меня есть iframe с формой отправки, а за ее пределами у меня есть div с идентификатором "target". Можно ли отправить форму в iframe и при успешном обновлении целевого div. Скажем, загрузить в него новую страницу или что-то еще?
изменить: Целевой div находится на родительской странице, поэтому мой вопрос в основном заключается в том, Можете ли вы сделать для примера вызов jquery вне iframe для родителя. И как это будет выглядеть?
изменить Два: Так вот как теперь выглядит мой код jquery. Он находится на странице iframe. цель div #находится в родителе.php
$(;"form[name=my_form]").submit(function(e){
e.preventDefault;
window.parent.document.getElementById('#target');
$("#target").load("mypage.php", function() {
$('form[name=my_form]').submit();
});
})
Я не знаю, активен ли скрипт, потому что форма успешно отправляет, но ничего не происходит с целью.
редактировать 3:
теперь я пытаюсь вызвать родительскую страницу из ссылки в iframe. И никакого успеха там тоже
<a href="javascript:window.parent.getElementById('#target').load('mypage.php');">Link</a>
4 ответа:
Я думаю, что проблема может быть в том, что вы не находите свой элемент из-за "#" в вашем вызове, чтобы получить его:
window.parent.document.getElementById('#target');
вам нужно только # , если вы используете jquery. Вот она должна быть:
window.parent.document.getElementById('target');
имейте ниже js внутри iframe и используйте ajax для отправки формы.
$(function(){ $("form").submit(e){ e.preventDefault(); //Use ajax to submit the form $.ajax({ url: this.action, data: $(this).serialize(), success: function(){ window.parent.$("#target").load("urlOfThePageToLoad"); }); }); }); });
вы можете получить доступ к элементам родительского окна из iframe с помощью
window.parent
такой:// using jquery window.parent.$("#element_id");
что то же самое, что:
// pure javascript window.parent.document.getElementById("element_id");
и если у вас есть более одного вложенного iframe и вы хотите получить доступ к самому верхнему iframe, то вы можете использовать
window.top
такой:// using jquery window.top.$("#element_id");
что то же самое, что:
// pure javascript window.top.document.getElementById("element_id");