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

Всплывающее окно, доступ к родительскому домику

У меня есть всплывающее окно, которое должно получить доступ к родительскому dom для создания страницы печати. Структура страницы печати значительно отличается от структуры родителя, поэтому печать css не решит проблему. Я в основном хочу всплывать окно, а затем, чтобы это окно захватило некоторые данные от родителя, даже доступ к dom из всплывающего окна и создание страницы печати без необходимости снова переходить на сервер. Любые идеи, как я могу это достичь?

Im, используя стандартный

window.open()

чтобы открыть окно. Мне нужно это решение, чтобы не быть взломом и быть кросс-браузером, совместимым со всеми основными браузерами.

Спасибо заранее!

4b9b3361

Ответ 1

Ответ Sajjan - это начало, но лучше убедитесь, что ваши объекты доступны до того, как вы попытаетесь получить к ним доступ:

var opener = window.opener;
if(opener) {
    var oDom = opener.document;
    var elem = oDom.getElementById("your element");
    if (elem) {
        var val = elem.value;
    }
}

В противном случае вы рискуете, что нож не отвечает на ваш первоначальный вызов и что вы не сможете получить из него элемент.

Как jQuery, я думаю (на основе ответа здесь: как получить доступ к объекту родительского окна с помощью jquery?):

var opener = window.opener;
if(opener) {
    var elem = opener.$("#elementId");
    if (elem) {
        var val = elem.val(); // I forgot we're dealing with a jQuery obj at this point
    }
}

Ответ 2

window.opener.document.getElementById( "ваш элемент" ). Значение

Ответ 3

В соответствии с MDN, window.open() вернет вам дескриптор в новое окно.

var popUpHandle = window.open();

С помощью этого дескриптора вы сможете получить доступ к DOM для PopUp. Возможно, наоборот, используя уже упомянутый window.opener. См. Также MDN:

var originalWindow = window.opener;

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