访问父dom的弹窗 [英] Popup window accessing parent dom

查看:16
本文介绍了访问父dom的弹窗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个弹出窗口,需要访问父 dom 以生成打印页面.打印页面的结构与父页面的结构明显不同,因此打印 css 无法解决问题.我基本上想弹出一个窗口,然后让该窗口从父级获取一些数据,甚至从弹出窗口访问 dom 并生成打印页面,而无需再次访问服务器.有什么想法可以实现吗?

I have a popup window that needs to access the parent dom to generate a print page. The structure of the print page is significantly different then the structure of the parent so a print css would not solve the problem. I basically want to popup a window and then have that window grab some data from the parent of even access the dom from the popup and generate the print page without having to go to the server again. Any ideas how i can achieve this?

我正在使用标准

window.open()

弹出一个窗口.我需要这个解决方案不是黑客,并且与所有主流浏览器兼容.

to pop up a window. I need this solution to not be a hack and be cross browser compatible with all major browsers.

提前致谢!

推荐答案

Sajjan 的回答是一个开始,但最好在尝试访问它们之前确保您的对象可用:

Sajjan's answer is a start, but better make sure your objects are available before you try to access them:

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

否则,您将面临开启者不响应您的初始调用,并且您无法从中获取元素的风险.

Otherwise, you do run the risk that the opener doesn't respond to your initial call, and that you can't get the element from it.

作为 jQuery,我认为(基于答案,此处:如何使用 jquery 访问父窗口对象?):

As jQuery, I think (based on an answer, here: how to access parent window object using 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
    }
}

这篇关于访问父dom的弹窗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆