Chrome跨窗口通信

时间:2013-03-04 01:23:18

标签: javascript dom cross-window-scripting

我有一个HTML5框架,并开发并集成了调试器/配置文件/控制台等。在全屏模式下,我看不到调试器(显然是因为画布是全屏的)。所以,我需要做另一个选项卡或弹出窗口,以便调试器可以移动到另一个监视器或其他任何。但是,调试器需要能够访问(监视)打开它的窗口或选项卡。

我唯一的另一个选择是在加载框架的调试版本时不允许全屏,但这不是我想要的各种研究的路径。所以基本上我的问题是,我可以有一个窗口(webapp)打开弹出窗口(调试器)并让弹出窗口访问打开窗口(webapp)吗?

2 个答案:

答案 0 :(得分:0)

是的,你可以这样做,如果父窗口和子窗口来自不同的域,浏览器会因安全原因阻止它。

如果它们在不同的域上运行并且您可以控制父窗口代码和子窗口代码,则在两个页面上都设置它。

document.domain = '.xyz.com';

您可以调用子窗口对象,例如

winobj=window.open('child window') 
...
winobj.document.getElementById("elementname").value=""

和父窗口一样,

window.opener.functionname(a,b) or window.opener.buttonid.name

请查看respnse标题  “Access-Control-Allow-Origin”允许在您无法控制父窗口域或子窗口域的其他域上进行跨域脚本编写,它们是不同的。

答案 1 :(得分:0)

opener属性怎么样?

opener.runFunction();