使用javascript打开一个新窗口,其中包含上一个窗口中的信息

时间:2014-07-10 16:39:08

标签: javascript jquery html css web

我正在开发一个项目,当我双击页面中的某个元素时,我正在使用vanilla javascript和jquery来打开一个新窗口。我知道如何在javascript / jquery中打开一个新窗口,我不知道如何将信息从原始窗口发送到新窗口。

说我双击原始窗口中的内容。然后,这将创建一个新对象并打开一个新窗口。我想知道是否有办法将新创建的对象从原始窗口发送到新窗口。

1 个答案:

答案 0 :(得分:0)

您可以做的是在打开弹出窗口之前将对象附加到父窗口的“窗口”对象。弹出窗口可以访问父窗口,因此只要您知道对象的名称,就可以从弹出窗口中检查它。

所以在你的父页面上:

<script type="text/javascript">
        function DoPopThing() {
            var obj = { foo: 5, bar: 12, eep: function () { alert("fools!"); } }
            window.prePopObj = obj;
            window.open("PopupTarget.aspx", "PopupWindow", "width=400, height=400, resizable=false");
        }
</script>

<button onclick="DoPopThing(); return false;">Click me!</button>

在你的弹出/子页面(本例中为“PopupTarget.aspx”):

<script type="text/javascript">
     $(document).ready(function () {
           alert(window.opener.prePopObj.foo);
     });
</script>

无论刷新多少次或页面URL更改,弹出窗口都可以访问该对象。只要它后面的父窗口不刷新(这将导致它松开其“prePopObj”对象),该对象就可用。子窗口也可以根据需要更改父窗口的对象。