让浏览器在登录
中保存用户名/密码值?

2024-04-27

我有一个 GWT 应用程序,需要一个用户登录表单。我想让浏览器保存用户的用户名和密码。我相信我需要为此使用一种“常规”形式(不是由 GWT 生成的形式)。所以我做了一个简单的表格:

<form id="myform">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" value="Login" />
</form>

现在我想中断提交过程,获取用户名/密码,通过 RPC 登录,但让浏览器为用户保存这些字段的内容(如果他们愿意)。 GWT 开发板上有一些关于它的帖子,不确定哪一个有效,因为它们都不是开箱即用的。我认为它应该看起来像:

FormPanel form = FormPanel.wrap(Document.get().getElementById("myform"), false);
form.setAction("javascript:;");
form.addSubmitHandler(new SubmitHandler() {
    public void onSubmit(SubmitEvent event) {
        // Do my RPC call here?
        // User should have been prompted to save password already now?
    }
});

有谁知道如何让它发挥作用?


这取决于您的表格(myform)看起来是因为每个浏览器都使用自己的启发式方法来发现带有要存储的凭据的潜在登录表单(例如,Chrome 需要标记中存在一个操作属性http://code.google.com/p/chromium/issues/detail?id=29513 http://code.google.com/p/chromium/issues/detail?id=29513)。因此,我们所做的就是在谷歌上搜索我们的应用程序必须支持的每个浏览器的记住凭据功能。结果是以下表单元素:

<form id="login-form" style="display:none" action="login">
    <input type="text" tabindex="0" name="username" id="login-username">
    <input type="password" tabindex="0" name="password" id="login-password">
    <input style="position: absolute; left: -9999px; width: 1px; height: 1px;" type="submit">
</form>

也可能为你工作。

EDIT

这是一个适合我的示例(仅尝试过 FF 版本 14.x)。不要忘记删除display:none来自表单标签。

public class Starter implements EntryPoint {

    private static final String FORM_ID = "login-form";
    private static final String USER_ID = "login-username";
    private static final String PASSWORD_ID = "login-password";

    @Override
    public void onModuleLoad() {
        injectLoginFunction();
        TextBox fUsername = TextBox.wrap(DOM.getElementById(USER_ID));
        fUsername.setStyleName("gwt-TextBox");
        PasswordTextBox fPassword = PasswordTextBox.wrap(DOM.getElementById(PASSWORD_ID));
        fPassword.setStyleName("gwt-PasswordTextBox");
        FormPanel fLoginForm = FormPanel.wrap(DOM.getElementById(FORM_ID), false);
        fLoginForm.setAction("");
        fLoginForm.addSubmitHandler(new SubmitHandler() {

            @Override
            public void onSubmit(SubmitEvent event) {
                Window.alert("test");
            }
        });
        fLoginForm.getElement().setAttribute("onsubmit", "login();return false;");
    }

    private static void doLogin() {
        Window.alert("test");
    }

    private static native void injectLoginFunction() /*-{
        $wnd.login = function() {
            @test.client.Starter::doLogin()();
        };
    }-*/;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让浏览器在登录 中保存用户名/密码值? 的相关文章

  • gwt hibernate 程序中的异常

    我正在尝试制作一个简单的 GWT RPC Hibernate 程序 将用户添加到 MySQL 数据库 我正在使用 Eclipse EE 该应用程序已成功将用户添加到数据库 但在编译时引发异常 这是我的应用程序的例外情况和来源 例外 Exce
  • GWT 和 Web 服务 (wsdl)

    谁能告诉我一种从 GWT 客户端访问 WSDL Web 服务的方法 这可能吗 Thanks 智能网关 http www smartclient com product index jsp支持 WSDL 数据源 除此之外 您始终可以将 WSD
  • 根据外形尺寸更改入口点类别

    如果用户从移动 Web 浏览器或桌面 Web 浏览器访问 我希望在我的 GWT 应用程序中加载不同的用户界面 我想知道如何编辑我的 Application gwt xml 文件 更改根据外形规格加载哪个入口点类 我认为这可能是这样的 但我只
  • Jackson:无法反序列化 START_OBJECT 令牌中的 Number 实例

    我的 GWT 服务返回LinkedList
  • AttachEvent 是什么

    我真的不明白 AttachEvent 类或 addAttachHandler 是什么 这有什么用呢 有人可以为此发布一个例子吗 多谢 AttachEvent 会在 Widget 附加到实际页面或从实际页面分离时通知您 如果某个东西没有附加
  • GWT - 让 CellTable 单元格使用 HTML?

    我有一个 CellTable 我想将 HTML 代码放入单元格中 以下代码不起作用 空格已从输出中删除 TextColumn
  • 如何将 GWT 与 Visual Studio 一起使用来创建 ASP.NET 网站?

    如何将 GWT 与 Visual Studio 一起使用来创建 ASP NET 网站 如果可能 GWT 可以与任何后端一起使用 只需做一些工作 它开箱即用 使用 servlet 容器 但您不需要保留此容器 容器中的关键项是加载GWT编译代码
  • GWT - css 中常量的问题

    我是 GWT 新手 我正在构建一个小型示例应用程序 我有几个 CSS 文件 我能够成功使用 ClientBundle 和 CssResource 将样式分配给 UiBinder 脚本中定义的元素 现在我想更进一步 使用 def css ru
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • 如何从 GWT 的序列化策略中删除实现类型?

    这个问题的反面是 如何将类型添加到 GWT 的序列化策略白名单 https stackoverflow com questions 138099 how do i add a type to gwts serialization polic
  • 如何使用 GWT 以编程方式禁用 html 缓存

    有没有办法使用 GWT 禁用浏览器中 html 页面的缓存 我宁愿避免在 html 页面的标题中使用插入 META HTTP EQUIV EXPIRES CONTENT 而是以编程方式执行 如果可能的话 如果这对于 GWT JavaScri
  • GWT 检测 GAE 版本更改并重新加载

    我的用户平均每次使用我的 GWT 应用程序 40 分钟 因此当我升级 GAE 后端的版本号时 他们在浏览器中运行的版本有很长一段时间与版本不匹配在服务器上支持它 大多数功能都被破坏 抛出不兼容的 RemoteServiceException
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • 更改src iframe具有跨域功能

    我正在尝试使用 GWT 制作一款将在一个 iframe 内运行的应用程序 直到这里一切正常 问题是我的实际网络中有一种表单可以将请求发送到 iframe 使用java脚本 当我按下 发送表单 按钮时 我更改了iframe的src并稍后刷新它
  • 如何注入“运行时”依赖项,例如登录用户,该依赖项在应用程序启动时不可用?

    我只是不明白这个 我在我的 java GWT 应用程序中使用 Gin 来进行 DI 登录屏幕集成到完整的应用程序窗口中 用户登录后 我想将用户对象注入到我创建的其他类 例如 GUI Presenters 中 因此我相信存在某种运行时依赖性
  • GWT 代码服务器在使用 Maven 原型的新生成的项目中找不到模块

    我已经使用 GWT 和 eclipse 一段时间了 我想玩一下 Maven 和 GWT 插件 gwt maven plugin 在此输入链接描述 http mojo codehaus org gwt maven plugin 我尝试在 Ec
  • 为什么这个 GWT DockLayoutPanel 的对话框尺寸这么小?

    我使用 GWT 2 0 4 生成了一个新的 Web 应用程序项目 我将 onModuleLoad 代码替换为 public void onModuleLoad DockLayoutPanel dp new DockLayoutPanel U
  • HTMLPanel 中的 JavaScript

    我想在 HTMLPanel 元素中包含 Javascript 代码 但它不起作用 请你帮助我好吗 提前致谢 脚本 pro js alert hello 使用 HTMLPANEL 不起作用 不显示警报 我认为应该是相反的 HTMLPanel
  • GWT - onClick 未触发

    我在表单上有一个非常奇怪的行为 有许多具有内联验证的文本字段 如果内容无效 则会在字段下方显示错误消息 验证在模糊时触发 页面底部有一个 下一步 按钮 单击后 将执行验证 如果一切正常 则提交表单 现在 如果当我单击按钮时强制空白字段具有焦
  • 使用 GIN 注入 Class

    有没有办法注入类类型Class

随机推荐