2011-04-26 94 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

相關問題