我正在进行一个站点间单点登录项目,并且在我的腿上掉了一个很小的问题。当用户退出“父”站点时,需要在包含“子”站点的弹出窗口中加载特定页面。但是,我无法存储对window.open(…)
的返回值的引用,因为在注销之前必须允许用户在每个站点上随意导航。是否有可能确定一个命名窗口是否在JavaScript中打开?
如果我可以假设子站点始终打开,那么这很容易,因为到同一命名窗口的另一个window.open(…)
将更改其URL。但是,弹出式窗口如果尚未打开(不是所有用户都有权访问子站点),则不会导致出现。
我认为这给了我两个冲突的情况。当用户访问子站点时:
- 用户登录到父站点。
- 用户点击子网站的链接
- 子网站出现在名为“child_popup”的窗口中。
- 用户在父网站中浏览的范围很广,忘记了子窗口存在。
- 用户注销父站点。
- 子弹出被重定向到子站点的注销页面。
,并在用户没有或不能访问子站点:
- 用户登录到父站点。
- 用户在父网站中浏览的范围很广。
- 用户注销父站点。
- 不应该弹出窗口!
所以我的限制是:
- 我不能储存在JS窗口的引用,因为用户可以导航到任何数量的访问子站点和退出之间的页面。
- 我有零控制子站点的内容(我的雇主运行父站点)。
- 父站点无法转换为框架以提供“全局”JS范围。 :-)
我无法在Google或SO上找到任何相关资源。有没有办法做到这一点?
不幸的是,我没有访问服务器端会话数据(读*或*写)。从本质上讲,我被要求在纯JS中做到这一点。我现在正在推动,看看我能否得到一组更合理的要求。 – 2009-02-18 23:44:36