2010-10-19 4 views
4

est-il possible de supprimer un élément de l'historique dans gwt? Ce que je veux réaliser est que dans un cas spécial en appuyant sur le bouton de retour des navigateurs apparaîtra le deuxième élément de l'histoire à l'arrière. Je sais que je peux le faire en appelant manuellement History.back() ;, mais je n'aime pas cela parce que l'utilisateur verra la transition pour une seconde ou plus ce qui n'est pas agréable. Merci d'avance pour l'aide.GWT Historique supprimer l'élément

kuku

+0

Pourquoi mettre le jeton sur la pile d'histoire en premier lieu si elle ne doit pas être accessible par l'utilisateur? – z00bs

+0

Le problème est au moment où je mets le jeton dans je ne sais pas s'il devrait être ajouté ou non. – kukudas

Répondre

7

Les navigateurs ne le permettent pas.

GWT utilise Javascript (bien sûr) pour manipuler l'historique du navigateur. Les moteurs Javascript ne permettent pas la suppression des entrées d'historique.

Peut-être que vous pouvez faire un HistoryListener pour sauter l'étape que vous souhaitez supprimer, mais vous devez garder une trace de vous-même l'histoire afin de décider quelle façon de sauter (en avant ou en arrière)

+0

thx pour la réponse rapide. – kukudas

0

Comme indiqué plus haut, cette n'est pas possible via GWT mais vous pouvez gérer cela en utilisant History

(note: HistoryListener - mentionné dans le post précédent - a été dépréciée)

Voici un exemple simple qui vous aider à démarrer.

public class UrlManager implements ValueChangeHandler<String> { 

public UrlManager() { 
    History.addValueChangeHandler(this);  
} 

public void onValueChange(ValueChangeEvent<String> event) {  
    String historyToken = event.getValue(); 
} 

}

0

Vous pouvez utiliser History.replaceItem (newToken, fireEvent).

Ceci remplacera le jeton d'historique en cours sur la pile d'historique des navigateurs.
newToken - jeton d'histoire pour remplacer première entrée actuelle
fireEvent - un booléen pour savoir si vous voulez à l'événement d'état de l'histoire feu ou non