2013-02-09 56 views
0

在我的應用程序中,我將GWT模塊包含在iframe中。當用戶點擊刷新/ F5時如何避免從主應用程序重定向到gwt應用程序?

點擊GWT模塊中的按鈕,我分配新的url,這是我的應用程序的一部分,只是在同一窗口內的新url的內容。

Hyperlink eventStatusLink = new Hyperlink(moveToMainApplication, ""); 

    eventStatusLink.addClickHandler(new ClickHandler() 
    { 
     @Override 
     public void onClick(ClickEvent event) { 
      String eventStatusUrl = "/company/MainAppServlet?action=Launch&ID="+ IDFromGWT"; 
      // info("eventStatusUrl:"+eventStatusUrl); 
      Window.Location.assign(eventStatusUrl); 
     //Also called native method ::$wnd.location.href = url; not useful for me 

     } 
    }); 

我能夠重定向到我的主要應用程序,但如果主要應用程序的用戶按F5 /刷新鍵,然後頁面重定向到我的GWT應用程序。

Window.Location.assign/replace不會替換瀏覽器中的主要應用程序url爲什麼?

有沒有辦法使用GWT做到這一點?

在我mainApplication用戶可以按F5 /刷新鍵

如何避免從我的主應用程序,GWT應用重定向?

回答

0

這對我工作得很好:)

Hyperlink eventStatusLink = new Hyperlink(moveToMainApplication, ""); 

    eventStatusLink.addClickHandler(new ClickHandler() 
    { 
     @Override 
     public void onClick(ClickEvent event) { 
      String eventStatusUrl = "/company/MainAppServlet?action=Launch&ID="+ IDFromGWT"; 
      // info("eventStatusUrl:"+eventStatusUrl); 
      //Window.Location.assign(eventStatusUrl); 
      redirectToOtherModule(eventStatusUrl); 

     } 
    }); 

本地方法如下:

public static native String redirectToOtherModule(String url) /*-{ 
     return $wnd.redirectToOtherModule(url); 
     }-*/; 

//MyGWTModule.html

function redirectToOtherModule(url){ 
       window.top.location.href = url; 
      } 
0

是你在找什麼?

您可以通過使用Window.Open並設定目標爲_self

com.google.gwt.user.client.Window.open(url, "_self", 
      "param1=value," + 
      "param2=value"); 
} 

希望上面的代碼會給你一個提示打開在同一窗口中所需的URL。

,並且對GWT PlaceManager一看也

+0

@Suresh我已經厭倦了Window.open和_self。對我的情況沒有用處 – StackOverFlow 2013-02-11 06:43:12

相關問題