我試圖實現以下目標:
在頁面A上,我們有一個訪問受限的鏈接到頁面B.訪問限制在服務器端處理PHP。
當用戶點擊這個鏈接到頁面B時,我們會在頁面A上顯示一個模式對話框(通過javascript),並將鏈接的href(B)作爲一個表單。 (爲用戶提供即時反饋,後退是將他重定向到登錄表單,將他重定向到他想訪問的站點。) 該系統運行良好。Javascript - 表單提交後的目標=「_ blank」後重新加載頁面
但現在我的問題:
我們訪問應該在新窗口中打開的受限保護的鏈接。
現在,如果我在表單上使用target =「_ blank」,則用戶在他來自(A)的頁面上保持註銷狀態,但仍在後臺打開。
在表單提交到新窗口(B)後,有沒有辦法重新加載頁面(A,在後臺)?
我的第一個想法是使用window.location.reload();在頁面A的提交處理程序。
這不適用於鉻,從我的理解可以創建競爭條件。
另一個想法是通過ajax調用登錄用戶並通過javascript打開一個新窗口。有沒有辦法做到這一點,而不必處理彈出窗口阻止程序?
我實現了lostsource的思想(見下文),只是稍加了一點。
因爲我只需要重新載入一次,所以setInterval的計時器可以在cookie改變時停止。
var ri=setInterval(function() {
if(oldCookie != document.cookie) {
// assuming a login happened, reload page
clearInterval(ri);
window.location.reload();
}
},1000); // check every second
我還是很喜歡這個主意。 stackoverflow是一個很好的!
非常感謝!我喜歡這個概念。 只需要稍微加一點: 如果你不停止這樣一個快速間隔的時間間隔,甚至在頁面可以重新加載之前就會重複,從而使其有效掛起。 所以我增加了一個明確的區間: '變種RI =的setInterval(函數(){ 如果(oldCookie =的document.cookie){// 假設一個登錄發生,刷新頁面 clearInterval(RI); window.location的! .reload(); } },1000); //檢查每一秒鐘' – baru
已更新的答案代碼抱歉,我錯過了 – lostsource