una quitar malicioso informacion google framework español entrada eliminar cómo como borrar java javascript html gwt gwt-history

java - quitar - GWT. Eliminar la URL de la parte de anclaje



google web toolkit español (4)

Hola, estoy usando GWT y su forma estándar de apoyar el historial a través de la clase "Historia". Es muy conveniente, pero ¿cómo puedo eliminar la parte de ancla de una url? Por ejemplo:

Mi url base:

http://www.mysuperwebsite.com/myapp

Mientras uso la aplicación me muevo a un lugar que agrega un nuevo elemento de historia.

En codigo:

History.newItem("funnygame");

Como resultado:

http://www.mysuperwebsite.com/myapp#funnygame

Cambio de lugar una vez más:

En codigo:

History.newItem("notsofunnygames");

Como resultado:

http://www.mysuperwebsite.com/myapp#notsofunnygames

Luego quiero volver a mi página de inicio (http://www.mysuperwebsite.com/myapp).

¿Qué se debe colocar en el código ?:

????

para volver a:

http://www.mysuperwebsite.com/myapp

¿Hay alguna manera estándar de lograr mi objetivo?

Si agrego algo como esto:

History.newItem("");

o

History.newItem(null);

la url se convertirá

http://www.mysuperwebsite.com/myapp#

Y esto no es para lo que estoy pidiendo, lo necesito sin carácter agudo.


El delimitador se identifica con un # , por lo que puede usar lo siguiente para eliminarlo:

int index = link.indexOf(''#''); if (index != -1) { link = link.substring(0, index); }


Si usa History.newItem(null); un nuevo evento será despedido. Como resultado, alternará su página de inicio: http://www.mysuperwebsite.com/myapp#

Tener o no un # al final es lo mismo, ¿me equivoco?

EDITAR:

... // 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); }-*/;


Si no quieres un historial, probablemente estés usando el historial incorrecto. Si no tiene la intención de jugar con la navegación, le recomendaría usar GwtEvent / EventHandler. Que es esencialmente lo que hace la clase de Historia de gwt, además de vincular esos eventos al historial de navegación.


Puede crear una clase de herramienta y llamarla cuando el Historial cambie.

public class UrlUpdater { public static void removeHashIfEmpty() { if(isHashEmpty()) removeHash(); } private static boolean isHashEmpty() { return "#".equals(Window.Location.getHash()); } private static void removeHash() { updateURLWithoutReloading(Window.Location.createUrlBuilder().setHash(null).buildString()); } private static native void updateURLWithoutReloading(String newUrl) /*-{ $wnd.history.replaceState({}, null, newUrl); }-*/; }