2011-04-26 89 views
2

我有一个Twitter授权流程,可在大多数浏览器中完美工作。您点击“添加Twitter帐户”,该帐户具有target="_blank"属性,该属性将用户发送到Twitter而不离开我的网站,他们授权,并且Twitter将用户发送回我网站上的页面。该页面会触发window.opener(父窗口),然后关闭该窗口。弹出窗口中的window.close()返回到Safari中的原始选项卡

事件在原始窗口中正确触发,但是有一种情况是用户在Safari(也可能是其他浏览器)中打开了多个选项卡,新窗口将在最后一个选项卡中打开,因此当我执行window.close(),它会将用户带到最后一个选项卡,而不是我的网站。除了删除target="_blank"并通过这种流程之外,是否有任何方法可将用户带回我的网站?

+0

为什么难为打开一个新的窗口?只需使用twitter OAuth API和相同的窗口即可。 'target =“_ blank”'已被折旧出于某种原因:它是侵入性的。 – ghoppe 2011-04-27 04:34:25

+0

嗯。我立场纠正。它在XHTML中被贬值,但HTML5似乎再次允许它。噢,它仍然很糟糕。 :) – ghoppe 2011-04-27 04:41:20

回答

1

不,这是一个浏览器配置,并允许一个脚本来访问这将是一个安全漏洞

你可以做的是不使用window.open,而是在iframe中打开它。

有很多的jQuery插件,为你做这个的,看看ThickBox's iFrame examples

+1

同意100%。通过打开一个新窗口进行授权是愚蠢和侵入性的。 – ghoppe 2011-04-27 04:29:28

+0

感谢球员,无论出于何种原因,我跳过了一个iframe来打开这个页面。当然,我正在使用OAuth,ghoppe,但部分流程是让用户授予您访问权。 – VNO 2011-04-28 18:38:49

相关问题