GWT.删除锚点部分网址

Zal*_*aka 7 html javascript java gwt gwt-history

嗨,我正在使用GWT及其支持历史的"历史"课程.它非常方便,但如何从网址中删除锚点部分?例如:

我的基本网址:

http://www.mysuperwebsite.com/myapp
Run Code Online (Sandbox Code Playgroud)

使用应用程序时,我会移动到添加新历史记录项的位置.

在代码中:

History.newItem("funnygame");
Run Code Online (Sandbox Code Playgroud)

结果:

http://www.mysuperwebsite.com/myapp#funnygame
Run Code Online (Sandbox Code Playgroud)

我再换一次地方:

在代码中:

History.newItem("notsofunnygames");
Run Code Online (Sandbox Code Playgroud)

结果:

http://www.mysuperwebsite.com/myapp#notsofunnygames
Run Code Online (Sandbox Code Playgroud)

然后我想回到我的主页(http://www.mysuperwebsite.com/myapp).

应该在代码中放置什么?:

????
Run Code Online (Sandbox Code Playgroud)

回到:

http://www.mysuperwebsite.com/myapp
Run Code Online (Sandbox Code Playgroud)

有没有可以实现我的目标的标准方式?


如果我添加这样的东西:

History.newItem(""); 
Run Code Online (Sandbox Code Playgroud)

要么

History.newItem(null); 
Run Code Online (Sandbox Code Playgroud)

网址将成为

http://www.mysuperwebsite.com/myapp#
Run Code Online (Sandbox Code Playgroud)

这不是我喜欢的,我需要它没有尖锐的性格.

Nao*_*aoj 5

如果您使用History.newItem(null);新事件将被解雇.因此,您将切换主页: http://www.mysuperwebsite.com/myapp#

最后是否有#是一回事,我错了吗?

编辑:

  ...
  // Get the last part of the url and remove #token
  String s = Location.getHref().substring(Location.getHref().lastIndexOf("/"));
  s = s.substring(0, s.indexOf("#")-1);
  setToken(s);
  ...

  protected native void setToken(String token) /*-{
    $wnd.history.pushState({},'', token);
}-*/;
Run Code Online (Sandbox Code Playgroud)