2013-03-11 102 views
-1

我有一個網站的公共視圖上的鏈接,只有在用戶通過身份驗證時才被允許執行。所以現在如果一個匿名用戶點擊鏈接,那麼登錄模式將會彈出。我存儲了一個鏈接被點擊的ID並使用登錄憑證發送。然後刷新頁面,並在$(document).ready()我做觸發點擊期待它遵循href屬性使用jquery觸發點擊打開一個新選項卡點擊

$('selectedLink').trigger('click'); 

我已經找到了問題。所以我現在有一個onclick屬性,它可以正常觸發。在onclick屬性中,我有一條說window.open(url)

這行很好,但總是被瀏覽器彈出窗口攔截器阻止。有沒有什麼辦法觸發腳本中的點擊並讓它打開一個新標籤?

+0

window.open(url)爲我打開一個新選項卡...您遇到什麼瀏覽器問題? – tymeJV 2013-03-11 19:27:47

+0

@tymeJV請參閱http://jsfiddle.net/vyW3V/1/,瞭解如何獲得「彈出窗口被阻止」 – 2013-03-11 19:28:37

+0

在頁面加載時我做了...當我實際單擊按鈕時,它一切正常。 (我使用IE9)Nvm,我剛剛意識到你想要.../facepalm。 – tymeJV 2013-03-11 19:30:06

回答

1

打開標籤時,儘量不要在點擊後進行過程密集型(這可能會導致延遲)。

點擊就像用戶打開一個新標籤的權限,如果您在使用該權限之前花費太長時間,瀏覽器可能會發現它可疑&將其歸類爲彈出窗口。

如果你能共享選項卡打開/重定向功能...

+0

我有一個ajax調用後的window.open(),我會嘗試ot移動到ajax之前 – 2013-03-11 19:35:44

+0

是的請試試看,讓我們知道。 – loxxy 2013-03-11 19:38:05

+0

我會,瀏覽器允許本地主機使彈出窗口發生,所以我必須發佈到測試版網站才能真正測試 – 2013-03-11 19:41:36

-1

無論是在新窗口中打開還是新選項卡完全由用戶決定,簡而言之:不,您無法強制打開新選項卡。

您可以使用window.location.replace(...newurl...)來改爲在相同的窗口中重定向用戶。

+0

即使這樣做,它會是window.location =「..」; – 2013-03-11 19:36:08

+0

你確定它不是jsfiddle不允許重定向嗎? – 2013-03-11 19:51:39

+0

是的,jsfiddle阻止了這個,但它確實有效。而window.location.replace的原因是,瀏覽器不會在會話中記錄上一頁,也就是說,如果單擊「返回」,則不會陷入重定向循環。由於用戶沒有明確地訪問該頁面兩次,因此更有意義。 – 2013-03-11 20:21:33

0

請嘗試 「_newTab」 而不是 「_blank」

window.open(URL, 「_newtab」);