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

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 模块可能需要(重新)编译 REDUX

    在编译模式下运行时 我收到这个可怕的 GWT Module mymodule may need to be re compiled 对话框消息 我已经编制了一份其他人建议在编译模式下运行的 GWT 给出此错误消息时建议尝试的操作列表 我已经
  • GWT 程序是否有办法判断它是处于托管模式还是 Web 模式?

    我希望我的 GWT 程序能够确定它是处于托管模式还是 Web 模式 有没有办法做到这一点 Thanks GWT isScript 在非托管模式下返回 true 在托管模式下返回 false http google web toolkit g
  • 如何覆盖 GIN 中的绑定

    我找到了 Guice 的答案重写 Guice 中的绑定 https stackoverflow com q 483087 929804但不知道如何在 GWT 中对 GIN 执行同样的操作 提前致谢 据我所知 不支持 回答您的评论 如果您运行
  • 在客户端使用带有 GWT 的 3rd 方库?

    我开始使用 GWT 想知道哪些库可以在客户端与 GWT 一起使用 因为 GWT 将 Java 代码转换为 JavaScript 所以如果您只使用客户端 我真的无法想象所有转换都是可能的 当然 您不想在实际应用程序中使用客户端的所有内容 但我
  • GWT ScrollPanel 未显示完整内容

    我使用 AbsolutPanel 作为主面板 我将另一个 AbsolutPanel 作为标题添加到主面板 现在我将 ScrollPanel 添加到主面板 ScrollPanel 在另一个面板上包含 30 个按钮 滚动时最后一个按钮未完全显示
  • GWT 应用程序中使用的 Javascript 通用 clone() 方法

    我试图编写一个通用克隆函数 它应该能够进行真正的深度克隆 我遇到过这个链接 如何在 javascript 中深度克隆 https stackoverflow com questions 4459928 how to deep clone i
  • 通过 gwt 将注释与 gilead 用于 hibernate 时,我收到 oneToMany 关联的错误

    我正在使用 Gilead 将我的实体保留在我的 GWT 项目中 我也使用 hibernate 注释 我的问题出在我的 onetomany 关联上 这是我的 User 类 它包含对 FileLocations 列表的引用 Entity Tab
  • 如何隐藏 HTML 文本输入字段中的插入符号?

    如果我有一个像这样的 HTML 输入字段
  • GWT序列化问题

    我在返回一个通过 RPC 实现 IsSerialized 的对象的 ArrayList 时遇到了很大的麻烦 IsSerialized pojo 包含一个变量 一个字符串 并具有一个 0 参数构造函数 我已经从我的战争中删除了 gwt rpc
  • GWT+Jetty JSP 编译器问题的解决方法? (Java 1.5源代码级别不被识别)

    As 显示 使用新的 Jetty 服务器在 GWT 托管模式下编译 JSP 似乎存在问题 2 ERROR in tmp Jetty 0 0 0 0 8080 war ut4fm1 jsp org apache jsp test jsp ja
  • 如何使用 Eclipse 的 google 插件使用经过精心编译的 HTML 来部署 GWT 应用程序

    我使用 eclipse 的 google 插件来部署我的 GWT 应用程序 到目前为止它运行良好 部署操作首先使用 混淆 输出样式编译我的 GWT 项目 现在我希望它更改为 漂亮 因为我必须调试客户端在运行中 我只是看不到混淆的堆栈 Tha
  • GWT:在另一个模块内调用RPC服务

    我有一个模块B 它继承了模块A 当我从A内部调用RPC服务时 它们工作正常 但是当我在B中调用A的服务时 RPC调用总是失败 我错过了什么吗 预先感谢您的任何帮助 我在这里找到了我的问题的答案 http blog cloudglow com
  • GWT 和 Google 文档 API

    我正在使用 GWT 创建一个简单的应用程序 让教师可以轻松创建自己的课程 该应用程序将位于 Google App Engine 上 但我想将课程存储在用户的 Google 文档空间中 是否可以 据我所知 gwt 将 java 转换为 jav
  • 如何在 GWT 中取消转义字符串

    我使用了 SafeHtmlUtils htmlEscape text 并且我想使用相反的功能 你能告诉我 gwt 中是否有像 unescapeHtml 这样的函数 如果 并且仅当 您可以相信文本不包含恶意内容 您可以使用 import co
  • 运行 GWT 的“MobileWebApp”示例时出现“HTTP 错误:500 无领域”

    我正在尝试运行 GWT 2 4 示例应用程序 MobileWebApp 当我尝试通过 Eclipse 在开发模式下运行应用程序时 出现 500 No Realm 错误 我知道这是一个身份验证问题 我不熟悉 Google App Engine
  • GWT 与 ScriptSharp 的优缺点 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 Ant 配置惰性或增量构建?

    Java编译器提供增量构建 所以javac蚂蚁任务也是如此 但大多数其他进程则不然 考虑到构建过程 它们将一组文件 源 转换为另一组文件 目标 我在这里可以区分两种情况 变压器cannot获取源文件的子集 仅获取整个集合 这里我们只能做懒惰
  • Vaadin - GWT 错误“模块 xxx 可能需要重新编译

    我正在加大 Vaadin 的力度 每当我尝试运行演示应用程序时 都会收到此 javascript 警报 GWT module com vaadin terminal gwt DefaultWidgetSet may need to be r
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 有没有办法在 Chrome 开发者工具中评估源映射中的变量?

    我正在 Chrome 中使用 SuperDevMode 调试 GWT 应用程序 它让我能够访问 devtools 中的 Java 源映射 我的问题是 当我调试代码时 我想评估一些变量 我的问题是 是否可以从源映射中评估变量 如果没有 是否可

随机推荐