作者howardwang (Howard)
看板Ajax
標題[問題] opener in Chrome
時間Thu Apr 19 22:57:45 2012
背景說明:
mvc架構,利用ctrl servlet來指定要顯示的頁面
操作流程:
在ctrl?page=login中輸入帳號/密碼,
按下"登入"後, 會refresh ctrl?page=login,
如果成功登入, ctrl?page=login的帳號/密碼欄位, 就會被隱藏起來,
取而代之的是一個button,
接著, 會蹦現出一個popup視窗, 網址是ctrl?page=init,
然後再將頁面導向至ctrl?page=frontpage,
使用者開始使用web app.
(上文提到的button, 按下之後, 也會蹦現popup視窗, 進入web app)
在ctrl?page=frontpage視窗中,
點選"登出"後, 會清掉session, 關閉popup視窗,
然後refresh opener (即 ctrl?page=login)
這時候因為已經登出了, 所以ctrl?page=login會隱藏button,
然後顯示帳號/密碼欄位.
問題:
在Firefox 10/IE9中, 登出之後, 都可以成功refresh opener
但是在Chrome中, 登出之後, 卻無法refresh opener
後來我在popup中,
console.log(opener.location.href)
在firefox和ie中, 都顯示ctrl?page=login
但是在chrome中, 顯示的卻是
ctrl?page=frontpage
如果我把popup關掉(按右上角的x, 而非登出),
然後再按ctrl?page=login中的button開啟popup,
這時候顯示出來的opener.location.href就是ctrl?page=login
不好意思,講得有點凌亂,希望看得懂我在表達什麼...
有人能夠釋疑嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.68.138.49