2013-02-09 61 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

相关问题