2

为了处理已经打开的 Web 应用程序中的特殊 URL,我使用这种方法:

  1. 用户在电子邮件中收到一个特殊的 URL(警报通知)
  2. URL 打开一个小的帮助网页 (H),其中包含临时设置会话 cookie 的 JavaScript 代码
  3. 已在另一个选项卡/窗口中打开的主 Web 应用程序 (M) 识别到这一点并在删除cookie后处理请求
  4. 帮助网页 (H) 将其识别为成功,现在无用,应关闭。

除了帮助窗口(H)保持打开状态外,这一切都很好。当然有一个小文字说“请立即关闭此窗口”,但如果它可以自动执行此操作就完美了。

window.close() 在 IE 中导致确认对话框,而 FireFox 只是忽略该命令。我知道这是因为没有使用window.open().

同样,在主窗口中调用window.focus()也不做任何事情。

有谁知道如何做到这一点?至少,在不关闭帮助窗口的情况下自动聚焦主窗口总比没有好。

当然,我也愿意接受其他解决方案来处理已经打开的 Web 应用程序中的电子邮件链接...... :)

请注意,Web 应用程序(当然还有帮助页面)位于 HTTPS 服务器上。

4

1 回答 1

0

在某些浏览器中,如果窗口是通过 javascript 打开的,则只能通过 javascript 静默关闭(出于安全目的)。

此代码是绕过此安全措施的黑客:

// open a new window, replacing the current one
window.open('', '_self', '');
// close the current window, which was now technically opened via javascript
window.close();

使用风险自负。这些措施是为了防止您对页面的访问者做烦人/恶意的事情。

于 2012-08-23T14:04:09.140 回答