Gwt 是否可以在GXT中实现跨浏览器用户名/密码自动完成?

Gwt 是否可以在GXT中实现跨浏览器用户名/密码自动完成?,gwt,autocomplete,cross-browser,gxt,Gwt,Autocomplete,Cross Browser,Gxt,昨晚,我做了一个快速的尝试,并在我的GXT应用程序中实现用户名/密码自动完成。我所说的“自动完成”,不是指Ajax风格的自动完成,而是基于浏览器的自动完成。我通过谷歌在这方面找到的最佳信息如下: 我没有使用这种技术,因为我使用的是GXT,不想失去登录表单的外观 我成功地在Firefox中实现了所有功能(它同时填充用户名和密码)。在IE中,它只填充用户名,而不是密码。在Safari/Chrome中,它根本不起作用 我是这样做的: 在我的HTML页面上创建了一个嵌入GWT的隐藏HTML表单

昨晚,我做了一个快速的尝试,并在我的GXT应用程序中实现用户名/密码自动完成。我所说的“自动完成”,不是指Ajax风格的自动完成,而是基于浏览器的自动完成。我通过谷歌在这方面找到的最佳信息如下:

我没有使用这种技术,因为我使用的是GXT,不想失去登录表单的外观

我成功地在Firefox中实现了所有功能(它同时填充用户名和密码)。在IE中,它只填充用户名,而不是密码。在Safari/Chrome中,它根本不起作用

我是这样做的:

  • 在我的HTML页面上创建了一个嵌入GWT的隐藏HTML表单
  • 当用户单击我的GWT应用程序中的“登录”按钮时,填充此隐藏表单中的字段并“单击”登录按钮(自action=“javascript:void(0)”之后,该按钮将不起任何作用)
//设置隐藏字段以触发浏览器记忆 DOM.getElementById(“用户名”).setAttribute(“值”,username.getValue()); DOM.getElementById(“密码”).setAttribute(“值”,password.getValue()); 单击表单登录(); ... 公共静态本机void clickFormLogin()/*-{ $doc.getElementById(“登录”)。单击(); }-*/; 这在Firefox 3.5中起作用,并提示我在屏幕顶部保存用户/通行证。我相信我知道为什么在Safari/Chrome中不起作用,这是因为表单的操作不在任何地方,并且表单未提交。如果我将操作更改为实际URL并显示表单,单击表单的登录按钮将其保存在中那些浏览器

在这里输入这个问题后,我开始思考这可能会成为一篇好的博客文章。因此,我复制了所有内容,并在我的博客中添加了一些内容:

总结和问题
虽然我很高兴能在Firefox中使用它,但我对IE缺少密码自动完成功能感到失望。最重要的是,我忍不住认为有一种方法可以在基于WebKit的浏览器中实现这一功能

有人知道如何在GWT(特别是GXT)中实现跨浏览器用户名/密码自动完成吗

  • 改用持久Cookies
  • IE不保存密码,如果用户选择,但它的工作原理不同。您需要至少键入用户名,这样它将自动完成密码

  • 你需要一个普通的html提交按钮。我想这会解决它

    <form method="post" action="javascript:void(0)" style="display: none"> <input type="text" id="username" name="username" value=""/> <input type="password" id="password" name="password" value=""/> <input type="submit" value="Login" id="login"/> </form> // Set the hidden fields to trigger the browser to remember DOM.getElementById("username").setAttribute("value", username.getValue()); DOM.getElementById("password").setAttribute("value", password.getValue()); clickFormLogin(); ... public static native void clickFormLogin() /*-{ $doc.getElementById("login").click(); }-*/;