2013-12-11 60 views
0

當用戶離開頁面時,我需要攔截,將他重定向到別的地方。GWT:在窗口關閉時重定向用戶

這將用於管理銷售流程以避免返回。

我們試圖像

Window.addCloseHandler(new CloseHandler<Window>() { 

    @Override 
    public void onClose(CloseEvent<Window> event) { 

    ... 
    Window.open("main"); 

    } 
}); 

但這僅適用於Firefox瀏覽器。 在Chrome上執行代碼,但沒有重定向。如果我更改爲「_blank」,則會打開一個新窗口,其中包含給定的URL,但這不是所需的行爲。

+0

瀏覽器往往試圖盡一切可能避免用戶被鎖定在一個網站/網頁。我不知道你的用例是什麼,但我當然不會喜歡你想要解決它的方式。 –

+0

我也不喜歡它,但客戶要求這種方法。 這是爲了避免在銷售過程的步驟之間「跳躍」。如果用戶點擊後退按鈕將被重定向到第一步。 – algiogia

+0

那麼也許你只需要在你的應用程序中處理不同的「歷史」?如果所有的步驟,但第一個共享相同的「歷史記號」,然後點擊後退按鈕將回到第一步(順便說一下,onClose不會處理在同一個GWT應用程序中的「歷史記號」之間的移動)如果你有單獨的HTML頁面,那麼你可以在服務器端處理它,然後真正取決於你如何在名義情況下在頁面之間導航,但這不是不可能的,我相信(再次,一個對每個人來說都是非常糟糕的體驗,但技術上不可能)。 –

回答

1

我認爲這種行爲是每個規範(HTML5):

如果有預先存在的企圖導航瀏覽器上下文,源瀏覽器上下文是相同的瀏覽器上下文進行導航,並該嘗試當前正在運行卸載文檔算法,並且在該導航中加載的資源的URL的來源與此導航中加載的資源的URL的來源不同,然後放棄這些步驟而無需執行這些步驟影響先前瀏覽瀏覽上下文的嘗試。

- 來源:http://www.w3.org/TR/html5/browsers.html#navigate

相關問題