Gwt 返回按钮浏览器

Gwt 返回按钮浏览器,gwt,browser-history,Gwt,Browser History,例如,当前页面是www.google.com。 但我在地址栏里键入了一个不同的网址,然后点击了。此网站已完全更新 GWT代码 但我想回到www.google.com的前一页。 所以我点击了浏览器的后退按钮。但我怎样才能从当前浏览器中获取后退按钮的事件呢 GWT代码。我可以在当前页面的GWT中设置任何backbutton事件处理程序吗? 一个通知我后退按钮被按下的警报 GWT有什么解决方案吗?您可以实现该接口:在每次单击后退和前进按钮时,都会调用类的方法onHistoryChanged(使用字符串

例如,当前页面是www.google.com。 但我在地址栏里键入了一个不同的网址,然后点击了。此网站已完全更新 GWT代码

但我想回到www.google.com的前一页。 所以我点击了浏览器的后退按钮。但我怎样才能从当前浏览器中获取后退按钮的事件呢 GWT代码。我可以在当前页面的GWT中设置任何backbutton事件处理程序吗? 一个通知我后退按钮被按下的警报

GWT有什么解决方案吗?

您可以实现该接口:在每次单击后退和前进按钮时,都会调用类的方法
onHistoryChanged
(使用
字符串
标记)。然后,您可以与类交互,例如,该类有一个“返回”的
back()
静态方法。但是,我不完全确定它是否可以追溯到GWT开始之前(但肯定值得尝试;-)。

有:

在浏览器窗口前激发 关闭或导航到其他位置 地点


另一个选项是,它侦听浏览器历史堆栈中的更改(有关更多信息,请参阅)。

+1至Igor和Alex。如果要使用ClosingHandler,可以使用以下代码:

    Window.addWindowClosingHandler(new Window.ClosingHandler() {

        @Override
        public void onWindowClosing(final ClosingEvent event) {
            event.setMessage("Don't you think my site is awesome?");
        }
    });
ClosingHandler.onWindowClosing()的Javadoc中的一些信息:

试试这个,会有用的

Event.addNativePreviewHandler(new Event.NativePreviewHandler() {

        @Override
        public void onPreviewNativeEvent(final NativePreviewEvent event) {
            if (event.getTypeInt() == Event.ONKEYDOWN) {
                if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                    Element element = Element.as(event.getNativeEvent().getEventTarget());

                    String tagName = element.getTagName();

                    System.out.println(tagName);

                    // Add checks for other input controls
                    if (!tagName.equalsIgnoreCase("INPUT") 
                                 && !tagName.equalsIgnoreCase("TEXTAREA")) {

                        boolean result = Window.confirm("Are you sure?");
                        if (!result) {
                            event.cancel();
                        }
                    }
                }
            }
        }
    });

您还可以使用此本机代码

 public native void call()/*-{

    $wnd.onkeydown = GetChar;

     function GetChar (event)
     {
        var key = event.keyCode;

        var bb = event.target.nodeName;

        if(key==8 && bb=="BODY")//checking keyCode of key for backspace
                {
                    var x= window.confirm("Are you sureyou want to leave the page");

                    if (x==true)
                            {
                                window.history.back();
                            }
                    else if(x==false)
                            {

                                return false;
                            }
                }
        }                   
}-*/;

HistoryListener
和一般情况下*从GWT 1.6开始,监听器被弃用-您应该改用适当的处理程序(在本例中,它是一个
ValueChangeHandler
,可能不如说
HistoryHandler
那么明显)。这些都是用户在后台操作的。是否有任何方法提示用户浏览“后退”按钮。。?
 public native void call()/*-{

    $wnd.onkeydown = GetChar;

     function GetChar (event)
     {
        var key = event.keyCode;

        var bb = event.target.nodeName;

        if(key==8 && bb=="BODY")//checking keyCode of key for backspace
                {
                    var x= window.confirm("Are you sureyou want to leave the page");

                    if (x==true)
                            {
                                window.history.back();
                            }
                    else if(x==false)
                            {

                                return false;
                            }
                }
        }                   
}-*/;