2015-10-08 109 views
-1

这可能有点不合常规,但我试图实现一些内容,当用户单击时,应该在同一个选项卡中打开特定页面,同时打开并关闭另一个页面瞬间,而用户注意到Firefox window.open不工作

我使用这个代码,并在Chrome中工作正常,但不是在FF或Safari -

<a href='https://www.abc123.com' onclick=window.open("https://www.xyz123.com","_blank").close();'>abc123</a> 

有没有一种方法,使在FF和Safari这项工作?

谢谢!

+0

你们是不是要开,因为你需要一些服务器端代码来运行立即关闭网页,但不希望显示什么?我认为AJAX可能是最好的选择。另一种选择是创建一个不可见的IFrame并在其中加载页面。 –

+0

丹尼尔 - 你是对的,xyz123页面本身负责服务器端操作,这就是为什么我试图打开它作为一个网页,而不是。 – zweil

回答

1

我想你错过了'

<a href='https://www.abc123.com' onclick='window.open("https://www.xyz123.com","_blank").close()'>abc123</a>

Chrome是有时聪明,当涉及到固定输错代码。这就是为什么它可以在Chrome上运行,而不是在FF/Safari中运行。

1

我不知道你到底想要达到什么样的目标,但是向第二页(xyz1234.com)发出ajax请求并且收到重定向到所需页面(abc121.com)的响应会更好。

根据第一条评论编辑:

您需要记录使用操作。有两种方法:

  1. 正如指出之前,你可以使用Ajax请求来记录用户操作。当您在日志记录完成时收到响应(ajax.onreadystatechange回调)并且您可以将用户重定向到所需的页面。对这种事情使用ajax并不是很常见的做法。
  2. 喜欢google/twitter/facebook等。首先记录数据然后重定向到期望的页面。这意味着你可以写你的链接。记录完成后,您可以根据“realurl”参数重定向到右页。只要注意你将如何发送realurl参数 - 纯文本,编码版本或转义版本。其实你不能将它作为纯文本发送,因为存在一些问题(在get方法中有保留的符号),但其他两种方式都可以。

祝你好运:)

+0

嗨Kamen Stoykov-我基本上试图打开一个登陆页面(abc123),但在此之前,我需要打开一个页面,注销用户(xyz123)。 – zweil