如何将数据从父窗口传递到弹出窗口

时间:2011-07-25 03:34:36

标签: javascript

父窗口是:http://localhost:8080/webApp/index.html通过单击给定的按钮,会出现一个弹出窗口,我想将一些数据作为innerHTML从父窗口发送到弹出窗口。 我正在使用下面的功能来显示弹出窗口

<script type = text/javascript>
     window.open("popup.html", "popup",'toolbar = no, status = no beforeShow');
</script>

弹出窗口网址为:http://localhost:8080/webApp/popup.html

现在我想将数据(innerHTML text)从父窗口发送到弹出窗口,我知道它可以使用AJAX发布到服务器然后添加到弹出页面,但我不想发送这个innerHTML文本(数据)到服务器,我只想用js函数在客户端执行我的任务。有可能吗?

server side : java, servlet
Client Side : jQuery, javascript

3 个答案:

答案 0 :(得分:4)

为什么不尝试像:

这样的简单窗口处理程序
x = window.open("....","..","...");
x.document.write("bla bla bla");

这里的想法是,当我们只引用document.write和其他文档级命令时,它引用当前窗口即。如果我们说document.getElementById("xxx")那么它实际上是当前窗口,如window.document.getElementById("xxx");如果我们想要它从弹出窗口那么我们需要使用以下命令为该窗口分配一个处理程序:

x = window.open(".....")

我们可以使用该处理程序执行与当前窗口相同的操作。而不是document.getElementByID使用x.document.getElementById

希望这有帮助。

答案 1 :(得分:2)

如果您只需要传递一些数据,可以通过保存window.open的返回值然后在其上设置属性来为弹出窗口添加全局变量。如果要操作弹出窗口的HTML,可以创建弹出窗口主体的jQuery对象。

var popup = window.open("popup.html", "popup",'toolbar = no, status = no beforeShow');
popup.dataFromParent = 'Some Data';

var $popupBody = $(popup.document.body);
// Manipulate $popupBody just like you would any other jQuery object.

答案 2 :(得分:2)

试试这个:

parent window js :  window.open("popup.html", "popup",'toolbar = no, status = no beforeShow');

children/pop-up window js : window.opener.document.getElementById("parent_window_id").innerHTML;

通常你不能从子/弹出窗口访问父窗口的任何功能或数据,除非你使用window.opener =父窗口(这只是父窗口的引用),然后得到任何id,函数或数据(innerHTML)