我正在开发一个项目,当我双击页面中的某个元素时,我正在使用vanilla javascript和jquery来打开一个新窗口。我知道如何在javascript / jquery中打开一个新窗口,我不知道如何将信息从原始窗口发送到新窗口。
说我双击原始窗口中的内容。然后,这将创建一个新对象并打开一个新窗口。我想知道是否有办法将新创建的对象从原始窗口发送到新窗口。
答案 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”对象),该对象就可用。子窗口也可以根据需要更改父窗口的对象。