a) I could be confusing this with something else (it was a long time ago)
but AFAIK this is due to IE7 replacing mere bookmarks in the HTML with
complete URLs as a security measure (can't remember what this was supposed
to fix but it made sense at the time). Therefore there's very little anyone
can do about it.

b) You can just use a hyperlink (which is preferred way of navigating within
your app and which fires off a history change for you). Anchors are really
for going to another HTML page, not to another state internally (bookmark).

Horses for courses.

Ian

http://examples.roughian.com

2009/12/29 compuroad <wilson.ferreira...@gmail.com>

> This is bug 1730 reported more than 2 years ago on version 1.4
> (below). Version 1.7 still has it. I feel disappointed that something
> so basic hasn't been resolved. One can not use anchors and class
> History together, unless they don't care about IE users, which still
> the majority.
>
> http://code.google.com/p/google-web-toolkit/issues/detail?id=1730&q=history
>
> Wilson
>
>
>
> On Dec 28, 4:46 pm, compuroad <wilson.ferreira...@gmail.com> wrote:
> > Thanks for the advise. I did try some variations of the your
> > suggestions. But I still get the App reload if the History.newitem()
> > is called anywhere (with or without the boolean flag). One point I did
> > not make clear: I am using the Anchor class to navigate (for example):
> >
> > //this triggers reload any I click on it. It does navigate momentarily
> > to the login page and then reloads.
> > private static Anchor ancLogin = new Anchor("Login","#Login#");
> >
> > //this triggers reload once upon the anchor's click event and then
> > behaves as expected. Thus I need to click on the login anchor twice to
> > get to the login page.
> > private static Anchor ancLogin = new Anchor("Login","?
> > page=Login#Login#");
> >
> > This behavior is found on the gwt hosted mode (port 8080) and also on
> > IE. I did not try with FireFox yet.
> >
> > Below is the class responsible for building the anchors:
> >
> > import com.google.gwt.core.client.GWT;
> > import com.google.gwt.event.dom.client.ClickEvent;
> > import com.google.gwt.event.dom.client.ClickHandler;
> > import com.google.gwt.user.client.Window;
> > import com.google.gwt.user.client.ui.Anchor;
> > import com.google.gwt.user.client.ui.HTML;
> > import com.google.gwt.user.client.ui.RootPanel;
> >
> > public class TopLinks implements ClickHandler {
> >
> >         private static CerradoConstants constants = null;
> >
> >         //top links
> >         private static Anchor ancHome = new Anchor("Home","#index#");
> >         private static Anchor ancAbout = new Anchor("About
> > Us","#aboutUs#");
> >         //private static Anchor ancBoom = new Anchor("The Brazilian
> > Boom","?page=boom#boom#");
> >         private static Anchor ancBoom = new Anchor("The Brazilian
> > Boom","#boom#");
> >         private static Anchor ancHowStarted = new Anchor("How It All
> > Started","#howStarted#");
> >         //user stuff
> >         private static Anchor ancAccount = new Anchor("Create
> > Account","#Account#");
> >         //this is the key to make history work
> >         private static Anchor ancLogin = new Anchor("Login","?
> > page=Login#Login#");
> >
> >         private static Anchor ancLogout = new Anchor
> > ("Logout","#Logout#");
> >
> >         private Controller controller = null;
> >
> >         public TopLinks(Controller controller, CerradoConstants
> > constants){
> >
> >                 this.constants = constants;
> >                 this.controller = controller;
> >
> >                 ancHome.addClickHandler(this);
> >                 ancAbout.addClickHandler(this);
> >                 ancBoom.addClickHandler(this);
> >                 ancHowStarted.addClickHandler(this);
> >
> >                 ancAccount.addClickHandler(this);
> >                 ancLogin.addClickHandler(this);
> >                 ancLogout.addClickHandler(this);
> >
> >                 ancHome.setStyleName("gwt-Top-Anchor");
> >                 ancAbout.setStyleName("gwt-Top-
> > Anchor");
> >                 ancBoom.setStyleName("gwt-Top-Anchor");
> >                 ancHowStarted.setStyleName("gwt-Top-Anchor");
> >
> >                 ancAccount.setStyleName("gwt-Top-Anchor");
> >                 ancLogout.setStyleName("gwt-Top-Anchor");
> >                 ancLogin.setStyleName("gwt-Top-Anchor");
> >
> >         }
> >
> >         public void show(){
> >
> >                 RootPanel.get("links").clear();
> >                 RootPanel.get("links").add(ancHome);
> >                 RootPanel.get("links").add(ancAbout);
> >                 RootPanel.get("links").add(ancBoom);
> >                 RootPanel.get("links").add(ancHowStarted);
> >                 setLoginAnchor(false);
> >
> >         }
> >
> >         private  void setLoginAnchor(boolean startUp){
> >
> >                 if (controller.getData().getUser() == null){
> >
> >                         RootPanel.get("links").add(ancAccount);
> >
> >                         RootPanel.get("links").add(ancLogin);
> >
> >                 }else{
> >
> >                         Window.alert(controller.getData().getUser
> > ().getLastName());
> >
> >                         RootPanel.get("links").add(ancLogout);
> >                 }
> >
> >         }
> >
> >         public void onClick(ClickEvent event) {
> >
> >                 String action =Window.Location.getParameter("page");
> >                 String link = event.getSource().toString();
> >                 String url = link.substring(link.indexOf("#")+1);
> >                 url = url.substring(0, url.lastIndexOf("#"));
> >
> >               Window.alert("topLink: action= "+action);
> >
> >              Cerrado.getInstance().setPage(url, constants);
> >
> >         }
> >
> > }
> >
> >
> ---------------------------------------------------------------------------
> -----
> >
> > On Dec 28, 10:43 am, Trevis <trevistho...@gmail.com> wrote:
> >
> >
> >
> > > I'm glad you asked this question!  I've just assumed that you had to
> > > fire the change event when adding to the history stack with addItem.
> >
> > > I guess you probably saw it but your answer is simply use the two
> > > argument version and pass in "false" for the issueEvent argument.
> >
> > > On Dec 23, 11:32 pm,compuroad<wilson.ferreira...@gmail.com> wrote:
> >
> > > > I thought History.newItem() would only build the history stack.
> > > > However in my App it fires the EntryPoint onModuleLoad, restarting
> the
> > > > application.
> >
> > > > What am I missing?
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to google-web-tool...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>
>

--

You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.


Reply via email to