2011-09-08 88 views
1

我有一个页面A,它以myWin = window.open(..)的形式打开一个javascript窗口。现在在同一个域中的另一个页面B中,当用户点击链接时,我想检查myWin是否可用,如果是,则将该窗口放在前面,否则执行一个新的myWin。作为单例的Javascript弹出窗口

我的问题是在这两个页面和window.js的window.js文件包含行

VAR myWin = NULL;

在页面范围内,我的逻辑工作,并带来了前面的窗口。在页面B中它也适用。当我打开页面A中的窗口时,点击页面B中的链接就会失败。

就好像myWin在页面范围内重置为null。我该如何克服这个问题?指针??/

回答

1

弹出窗口由页面A创建,只有页面A包含对该窗口的引用。当您打开页面B时,无法将页面A对弹出窗口的引用传递到页面B.这是无法完成的。

1

你想用空的URL调用window.open,例如

var newWindow = window.open('', title, dimension); // title needs to be a constant 
if (newWindow.location.href && newWindow.location.href!='about:blank') { 
    // Window was already open and points to something 
    newWindow.focus(); 
} else { 
    // new window make it point to something 
    newWindow.location.href = 'http://yoursite'; 
} 

这假定弹出窗口与同一站点调用页面中打开一个窗口,否则可能会遇到的各种权限问题。