javascript:如何在2个窗口之间进行通信?

时间:2015-05-12 20:11:22

标签: javascript jquery popupwindow window-object

我理解如何打开窗口并在打开第二个窗口的原始窗口和第二个窗口之间进行通信,以便与原始窗口进行通信。但是,我有一个原始页面和页面1的情况。这些页面是2个不同的PHP脚本,作为一个单独的页面运行。

第1页打开一个窗口,其中包含客户网页。我们将此窗口称为。

原始页面打开窗口2和窗口3.这些窗口加载包含编辑工具的php文件。我需要这些窗口2和窗口3与原始页面进行通信以编辑窗口1的内容。我不知道这是怎么可能的。 我只看过关于原始页面的教程和书籍,它创建的窗口是唯一可以互相访问的窗口。所以,我在理论上知道我不能让原始页面与窗口1通信,因为窗口1是由第1页创建的。

是吗,有什么方法可以解决这个问题吗?第1页打开内容......如图像,网页等。我已经设置了这种方式。我需要能够使用我的窗口工具来访问内容窗口。这样他们就可以编辑网页或图片。如果有可能,我该怎么做?

不,这不是同一个问题。我需要修改文档以对html进行更改。因此,使用cookie无法解决我的问题。我需要在另一个由不同网页打开的窗口中编辑内容,但它仍然是同一个域的一部分。

1 个答案:

答案 0 :(得分:2)

更新05/21

供参考: https://github.com/dboots/crossWindowAjax

演示: http://www.donboots.com/so/index.phphttp://www.donboots.com/so/index2.php

这是使用github repo /

中找到的/js/editor.js文件的窗口之间的一个相当基本的轮询解决方案

/index.php,/index2.php - 这些只是打开我们的弹出窗口。

/colors.php,/tools.php - 我们的弹出窗口包含poll()函数,还有使用set()函数的示例。这两个都是/js/editor.js中的自定义函数

/js/editor.js - 这是我们的弹出窗口和PHP文件(/js/ajax/process.php)之间的桥梁。

/ _ classes / Editor.php - 这是/js/ajax/process.php用于设置/获取变量的类。在这个例子中,它设置/获取$ _SESSION变量,但是这个类可以扩展为使用任何类型的文件存储,数据库等。

原始答案(不相关)

我想这可以通过折腾窗口变量范围来解决。

此方案是否符合您的需求?

窗口1

//-- window 1 variable
var page_variable = "page_variable";

//-- handle for window A
var windowA = window.open('windowA.php', 'windowA', 'height=200,width=600');

//-- handle for windowB
var windowB = window.open('windowB.php', 'windowB', 'height=400,width=500');

<强> windowA.php

//-- local windowA variable
var windowA_variable = "windowA Variable";

//-- windowB variable accessed via opener (window 1)
var windowB_variable = opener.windowB.windowB_variable;

//-- window 1 variable
var page_variable = opener.page_variable;

<强> windowB.php

//-- local windowB variable
var windowB_variable = "windowB Variable";

//-- windowA variable accessed via opener (window 1)
var windowA_variable = opener.windowA.windowA_variable;

//-- window 1 variable
var page_variable = opener.page_variable;