0

在我的应用程序中,我在 iframe 中包含了 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/Refresh 键,则页面将重定向到我的 GWT 应用程序。

Window.Location.assign/replace 不替换浏览器中的主应用程序 url 为什么?

有没有办法使用 GWT 做到这一点?

在我的 mainApplication 用户可以按 f5/刷新键

如何避免从我的主应用程序重定向到 gwt 应用程序?

4

2 回答 2

0

是你要找的吗?

Window.Open您可以通过使用并将目标设置为在同一窗口中打开所需的网址_self

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

希望上面的代码能给你一个提示。

并查看GWT PlaceManager

于 2013-02-10T12:33:03.160 回答
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;
            }
于 2013-02-22T07:52:45.577 回答