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

Элемент выбора jQuery в родительском окне

Есть ли способ выбрать DIV в родительском окне с помощью jQuery?

Например:

Основная страница содержит это,

<div id="testdiv"></div>

На всплывающей странице есть форма с некоторыми опциями и кнопка "Применить". Когда пользователь нажимает, он влияет на атрибут стиля на главной странице.

Что-то по логике,

parent.$("#testdiv").attr("style", content from form);
4b9b3361

Ответ 1

Используйте контекстный параметр

$("#testdiv",parent.document)

Но если вы действительно используете всплывающее окно, вам нужно открыть открыватель вместо parent

$("#testdiv",opener.document)

Ответ 2

Я искал решение этой проблемы и наткнулся на эту страницу. Я реализовал вышеупомянутое решение:

$("#testdiv",opener.document) //doesn't work

Но это не сработает. Возможно, он работал в предыдущих версиях jQuery, но теперь он не работает.

Я нашел это рабочее решение на другой странице stackoverflow: как получить доступ к объекту родительского окна с помощью jquery?

Из чего я получил это рабочее решение:

window.opener.$("#testdiv") //This works.

Ответ 3

Вы также можете использовать

parent.jQuery("#testdiv").attr("style", content from form);

Ответ 4

Я столкнулся с одной и той же проблемой, но, как указано выше, принятое решение не сработало для меня.

Если вы находитесь внутри фрейма или элемента iframe, альтернативным решением является использование

window.parent.$('#testdiv');

Вот краткое объяснение различий между window.opener, window.parent и window.top:

  • window.opener ссылается на окно, которое вызывает window.open(...), чтобы открыть окно, из которого он назвал
  • window.parent относится к родительскому элементу окна в кадре или элементе iframe

Ответ 5

почему бы не быть уверенным?

if(opener.document){
  $("#testdiv",opener.document).doStuff();
}else{
  $("#testdiv",window.opener).doStuff();
}