昨晚,我在我的GXT应用程序中尝试实现用户名/密码自动完成功能。通过“自动完成”,我不是指Ajax样式的自动完成,而是基于浏览器的自动完成。我通过谷歌发现的最佳信息如下:
http://osdir.com/ml/GoogleWebToolkit/2009-04/msg01838.html
我没有使用这种技术,因为我正在使用GXT,并且不想失去登录表单的外观。
我成功地让一切都在Firefox中运行(它填充了用户名和密码)。在IE中,它只填充用户名,而不是密码。在Safari / Chrome中,它根本不起作用。
我是这样做的:
<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(); }-*/;
这适用于Firefox 3.5并提示我将用户/传递保存在屏幕顶部。我相信我知道为什么这在Safari / Chrome中不起作用,这是因为表单的操作不会去任何地方并且表单未提交。如果我将操作更改为实际URL并显示表单,则单击表单的“登录”按钮会将其保存在这些浏览器中。
在这里输入这个问题之后,我开始认为这可能是一个很好的博客文章。因此,我复制了所有内容并在我的博客中添加了一些内容:
http://raibledesigns.com/rd/entry/browser_based_username_password_autocomplete
摘要和问题
虽然我很高兴我在Firefox中工作,但我对IE缺少密码自动完成感到失望。最重要的是,我不禁想到有一种方法可以在基于WebKit的浏览器中实现这一功能。
任何人都知道如何在GWT(特别是GXT)中实现跨浏览器用户名/密码自动完成功能?
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要一个简单的vanilla html提交按钮。我想这会解决它。
http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/2b2ce0b6aaa82461