Domanda

Ho un'applicazione web GWT Luoghi / Attività.Uso l'evento Anchor di click per spostare l'utente in una nuova "posizione", quindi non è possibile che l'utente apra un "link" in una nuova finestra o scheda.La domanda è: come posso rendere reali tutti questi collegamenti?

È stato utile?

Soluzione

Forse invece di utilizzare Anchor e ascoltare il ClickEvent, utilizzare Hyperlink con il targetHistoryToken impostato sul nome del luogo.

ad es.

<g:Hyperlink text="Home" targetHistoryToken="home" />

Altri suggerimenti

Mentre funziona un Hyperlink (o InlineHyperlink), preferisco utilizzare un ClickHandler su un Anchor, perché se qualsiasi attività restituisce un valore non nullo in mayStop l'URL non sarebbe ancora cambiato (mentre con un Hyperlink,lo avrebbe fatto, anche se l'utente decide di annullare la navigazione).

Per impostare il target (href) sul Anchor, utilizza semplicemente il tuo PlaceHistoryMapper.E per gestire correttamente ctrl + clic, clic centrale e clic destro, riutilizza HyperlinkImpl:

Anchor anchor = new Anchor("text", "#" + placeHistoryMapper.getToken(targetPlace));
anchor.addClickHandler(new ClickHandler() {
   private static final HyperlinkImpl IMPL = GWT.create(HyperlinkImpl.class);

   @Override
   public void onClick(ClickEvent event) {
      if (IMPL.handleAsClick(event)) {
         placeController.goTo(targetPlace);
         event.preventDefault();
      }
   }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top