如何让浏览器提示保存密码?

2024-03-20

嘿,我正在开发一个 Web 应用程序,它有一个登录对话框,其工作原理如下:

  1. 用户点击“登录”
  2. 登录表单 HTML 通过 AJAX 加载并显示在页面的 DIV 中
  3. 用户在字段中输入用户名/密码并单击提交。这不是一个<form>-- 用户/密码通过 AJAX 提交
  4. 如果用户/密码正常,页面将在用户登录的情况下重新加载。
  5. 如果用户/密码错误,页面不会重新加载,但 DIV 中会出现错误消息,用户可以重试。

问题是:浏览器永远不会像其他网站那样提供常见的“保存此密码?是/从不/不现在”提示。

我尝试包裹<div> in <form>带有“autocomplete='on'”的标签,但这没有什么区别。

是否可以让浏览器提供存储密码的功能,而无需对登录流程进行重大修改?

谢谢 埃里克

附注添加到我的问题,我肯定正在使用存储密码的浏览器,并且我从未单击过“从不用于此站点”...这是浏览器未检测到它是登录表单而不是操作员的技术问题错误 :-)


我找到了这个问题的完整解决方案。 (我已经在 Chrome 27 和 Firefox 21 中对此进行了测试)。

有两件事需要知道:

  1. 触发“保存密码”,并且
  2. 恢复保存的用户名/密码

1. 触发“保存密码”:

For 火狐21,当检测到有包含输入文本字段和输入密码字段的表单提交时,会触发“保存密码”。所以我们只需要使用

$('#loginButton').click(someFunctionForLogin);
$('#loginForm').submit(function(event){event.preventDefault();});

someFunctionForLogin()ajax 登录并重新加载/重定向到登录页面event.preventDefault()由于提交表单而阻止原始重定向。

如果您只使用 Firefox,上述解决方案就足够了,但在 Chrome 27 中不起作用。然后您会问如何在 Chrome 27 中触发“保存密码”。

For 铬27, '保存密码'被触发after通过提交包含输入文本字段的表单将其重定向到页面属性 name='用户名'和输入密码字段属性名称='密码'。因此,我们不能因为提交表单而阻止重定向,但我们可以在完成ajax登录后进行重定向。(如果您希望ajax登录不重新加载页面或不重定向到页面,不幸的是,我的解决方案不起作用。)然后,我们可以使用

<form id='loginForm' action='signedIn.xxx' method='post'>
    <input type='text' name='username'>
    <input type='password' name='password'>
    <button id='loginButton' type='button'>Login</button>
</form>
<script>
    $('#loginButton').click(someFunctionForLogin);
    function someFunctionForLogin(){
        if(/*ajax login success*/) {
            $('#loginForm').submit();
        }
        else {
            //do something to show login fail(e.g. display fail messages)
        }
    }
</script>

type='button' 的按钮将使表单在单击按钮时不会提交。 然后,将一个函数绑定到用于ajax登录的按钮。最后,调用$('#loginForm').submit();重定向到登录页面。如果登录页面是当前页面,则可以将“signedIn.xxx”替换为当前页面来进行“刷新”。

现在,您会发现Chrome 27的方法在Firefox 21中也适用。所以最好使用它。

2. 恢复保存的用户名/密码:

如果您已经将登录表单硬编码为 HTML,那么您将发现恢复登录表单中保存的密码没有问题。
但是,如果使用js/jquery动态制作loginForm,则保存的用户名/密码不会绑定到loginForm,因为保存的用户名/密码仅在文档加载时绑定。
因此,您需要将登录表单硬编码为 HTML,并使用 js/jquery 动态移动/显示/隐藏登录表单。


Remark:如果你使用ajax登录,则不要添加autocomplete='off'以标签形式,例如

<form id='loginForm' action='signedIn.xxx' autocomplete='off'>

autocomplete='off'将使将用户名/密码恢复到登录表单失败,因为您不允许它“自动完成”用户名/密码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让浏览器提示保存密码? 的相关文章

  • 如何从代码后面的 Blazor WebAssembly 项目打开浏览器窗口/选项卡:

    我正在将 UWP 应用程序转换为托管 ASP NET Core 的 Blazor WebAssembly 我的标记代码位于 Index razor 中 后面的代码位于 Index razor cs 中 在 UWP 项目中 我通过 oncli
  • Firefox 中的 Signalr 连接意外中止

    我正在使用 SignalR 具有跨域请求 2 3 0 版 用于集成到 ASP NET 站点的网络聊天 一切正常 但我发现 SignalR 连接的奇怪行为 当我单击聊天选项卡中的引用进行文件下载时 SignalR 连接被中止 并且在我的 Hu
  • Async/Await - 如何在递归 Ajax 函数中实现 Javascript Async-Await?

    我有两个功能 I call trendyolStocksUpdate 内部有循环的函数多次syncTrendyolOFFStocks 功能 I used async await but trendyolStocksUpdate 函数不是按顺
  • A:Visited 未检测到 AJAX 链接

    我注意到a visited样式不适用于通过 JavaScript 请求的链接 但是 在标准用户单击时 会立即和随后的刷新时注册访问的完全相同的链接 我不确定这是否是独一无二的jQuery 移动 http forum jquery com t
  • 通过单击按钮更改 PHP include ("link.php")

    如何通过单击按钮更改 PHP include link html BUTTON 1 change to BUTTON 2 change to BUTTON 3 change to 如何在不刷新页面的情况下执行此操作 使用ajax Wrap
  • jQuery Mobile 和 PhoneGap 中的身份验证

    我有一个使用 jQuery Mobile 和 PHP CodeIgniter 框架 构建的 Web 应用程序 现在我正在尝试制作它的 PhoneGap 版本 以使其可以作为独立应用程序进行分发 但是 PHP Web 应用程序 版本使用 Io
  • 如何更改 OS X 应用程序包中的可执行文件

    我想在 Firefox 启动之前和退出之后运行一个脚本 在 Ubuntu 中 我通过创建一个新的快捷方式来实现此目的 该快捷方式首先调用我的函数 然后调用 firefox 命令 然后调用我的最后一个函数 由于 firefox 命令会阻塞直到
  • JavaScript 等待函数响应

    我有以下代码 myFunc bar myFunc 正在发出 ajax 请求 在 myFunc 的请求完成之前 我不想执行 bar 我也不想将对 bar 的调用移至 myFunc 内部 可能的 EDIT 这是我最终得到的代码 var FOO
  • 如何使用内容类型:多部分/相关

    我想向用户发送一个二进制文件 并在浏览器上显示一些 HTML 我正在使用 apache2 的 CGI BIN 脚本 我发现此示例位于第 4 页 http www ietf org rfc rfc2387 txt 该链接还显示有关多部分 相关
  • 使 WebAPI 操作异步?

    我有一个问题 关于在 WebAPI MVC 控制器 AJAX 请求上使用 async await 是否有益 假设我有一个与 Web API 后端对话的 AngularJS 应用程序 并且我想获取一些数据 我对 Web API 进行了一些 A
  • jQuery PUT ajax 请求不起作用

    我正在尝试在 couchdb 中保存 Backbone 模型 因此我已经覆盖了save向 couchdb 发出 ajax 请求的方法 ajax type PUT url http 127 0 0 1 5984 movies this get
  • jQuery ajax POST 导致立即 GET 到同一 URL

    我使用 jQuery 1 4 2 和 Django 后端 并使用 Debian 上的 Firefox 3 5 15 进行开发 我使用 ajax 将一些数据发布到我的服务器 服务器将数据反射回浏览器 Firefox 正在发送 POST 然后立
  • 如果 JSF 页面受 j_security_check 保护,则 ajax 请求不会引发 ViewExpiredException

    我有一个不受保护的 JSF 页面j security check 我执行以下步骤 在浏览器中打开 JSF 页面 重新启动服务器 单击 JSF 页面上的命令按钮以发起 ajax 调用 Firebug 表明ViewExpiredExceptio
  • 如何在 JASPIC 中保存经过身份验证的用户?

    我开发了一个安全认证模块 SAM 并实现了validateRequest方法 我还有一个简单的 Web 应用程序配置为使用此 SAM In my validateRequest方法 我检查 clientSubject 并设置一个Caller
  • Firefox -moz-border-radius 不会裁剪图像?

    如果设置了图像的边框半径 有谁知道如何让 Firefox 裁剪角 它包含的元素可以正常工作 但我会发现丑陋的角落伸出来 有什么方法可以解决此问题 而无需将图像设置为背景图像或在将其放在网站上之前对其进行处理吗 解决方法 将图像设置为容器元素
  • 使用 ASP.Net 和 Ajax 的登录页面

    我正在尝试使用 html ajax 和 ASP NET 制作登录页面 数据确实传递给 ajax 函数 但是当我调试 asp 页面时 用户名和密码以 NULL 发送 该代码应该获取用户名和密码 然后返回用户 ID html页面 div Use
  • jQuery mCustomScrollbar 不适用于 ajax 内容

    window load function content 1 mCustomScrollbar scrollButtons enable true ajax code function beauty of ceylon content te
  • CSS 边框样式 INSET 或 GROOVE 看起来与 IE9 FF4 或 Safari5 或 Chrome2 非常不同

    抱歉 我是个白痴 但是当我尝试获得某种凹槽效果或插入效果作为边框样式时 我从不同的浏览器中得到了一些非常非常大的视觉结果 使用时 border 5px groove A00 or border 5px inset A00 Firefox 3
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单

随机推荐

  • 如何在提交前更改隐藏输入字段的值

    我有一个 Feedburner 订阅表格 其中有两个按钮 一个用于每日新闻 一个用于每周新闻 问题是如何更改带有名称的隐藏输入字段的值 uri 提交之前 我的解决方案不起作用 这就是我尝试使用的
  • 如何在vi中从中间开始缩进多行?

    例如 要转换这个 example array First gt This Second gt is Third gt an Fourth gt example Fifth gt 进入这个 example array First gt Thi
  • 按数据属性对列表进行排序

    我有一个人员列表 其职称按名字排序 如下所示 ul li a href span class list name John Smith span a span class list desc Professor span li li a h
  • 在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h

    我有一个简单的 React Native 应用程序 我一直在 Android 上测试它 现在想在 iOS 上测试它 它使用 React 导航 I ran npm run ios但我收到以下错误 info In file included f
  • 如何找到终结器队列挂起的原因?

    我有一个应用程序从 go 开始就经历了缓慢的内存泄漏 Using ANTS 内存分析器我可以看到所有泄漏的内存都由终结器队列的 GC 根保存 我怀疑可能发生的情况是终结器死锁 等待锁变得可用 我们的类都没有实现显式终结器 我们通常避免使用它
  • 如何使用 VisualVM 查找内存泄漏

    我怀疑我们的 ActiveMQ 连接桥存在重大内存泄漏 我们看到了典型的内存泄漏模式 应用程序加载良好 如果长时间运行或在短时间内一遍又一遍地重新启动 则速度会变慢 我查找了查找 Java 内存泄漏的现代最佳实践 许多开发人员似乎正在放弃
  • Log4Net 部署时不记录日志

    我正在使用 log4net 来记录我的应用程序 这是一个 WPF 应用程序 日志记录在调试模式下运行良好 但不适用于我部署的版本 该应用程序安装在 C Program Files x86 MyApp 中 我使用 InnoSetup 创建安装
  • Python 中的“类型错误:无法实例化抽象类”

    我有一个模块fi定义了以下类 class Asset metaclass abc ABCMeta pass abc abstractmethod def get price self dt datetime date kwargs Noth
  • Python 中的 COM/ActiveX 可以做什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读到可以使用 COM ActiveX 在 Crystal Reports 中自动生成月度报告 我不太了解这是什么或者你可以用它做什么
  • Bootstrap 在 3 列上通过右拉、左拉改变 div 顺序

    我一整天都在研究这个问题 但没有找到解决方案 我在一个容器中一行有 3 列 1 右侧内容 右拉 2 导航 左拉 三 主要内容 它在大屏幕上的外观 Menu Content Right Content 在较小的屏幕上它应该是什么样子 Menu
  • str_replace 多维数组 PHP 中的键

    我有一个多维数组 如下所示 Array results gt Array 0 gt Array object id gt 13 id gt 13 idno gt e00110 o00005 2010 PROG display label g
  • 为什么 Chrome 要求 robots.txt?

    我在日志中注意到 Chrome 请求了robots txt和我所期望的一切一样 2017 09 17 15 22 35 sanic INFO Goin Fast http 0 0 0 0 8080 2017 09 17 15 22 35 s
  • 将另一个转换附加到现有属性

    有没有办法将新的转换属性附加到现有属性 例如 我有一个div animation 其定义如下 animation transform translateX 50 translateY 50 现在我想追加transform scale 1 到
  • SlowCheetah 未在构建时转换文件

    我有一个项目正在尝试使用 SlowCheetah 我已经创建了我的配置文件 Test web config 和我想要使用的所有转换 调试 Mock config 调试 SQL config 发布 在我的构建配置中 我有一个构建后事件应该将转
  • Django 管理员:获取根据 GET 字符串过滤的 QuerySet,与更改列表中所见完全一样?

    在 Django 管理中 用户可以设置过滤器来限制更改列表中显示的行 如何获取具有由查询字符串定义的过滤器集的 QuerySet 实例 例如 如果我传递 start date gte 2009 11 06 Django 管理员将在某处应用
  • Ant 构建类路径 jar 生成“打开 zip 文件时出错”

    我有一个在 eclipse 中构建的项目 依赖于第 3 方 jar 我正在尝试为 ant 生成一个合适的构建文件 使用 Eclipses 内置的导出 gt ant 构建文件功能作为起始块 当我运行构建目标时 出现以下错误 javac err
  • Dotnet build 和 dotnet pack 生成不同的 nupkg

    这与这个问题 https stackoverflow com questions 76467763 cant use analyzer in nuget package an instance of analyzer cannot be c
  • Django 以 JSON 形式返回单个记录

    我创建了一个表单 用于在我们的网络管理中添加有关客户的注释 我正在使用 jQuery 和 Ajax 来提交 for 我希望 Django 视图返回新添加的注释 记录 以便我可以将其附加到客户注释表中 我的 Ajax 发送正在工作 并且正在保
  • 使用 php Imagemagick 调整图像大小

    我正在尝试使用 imagemagick 的函数 thumbnailImage 调整图像大小 现在 我之后没有对图像进行任何操作 只是回显新的尺寸以查看它是否有效 到目前为止 它还不起作用 这是我的代码 注意 它确实呼应了原始尺寸 但不是新尺
  • 如何让浏览器提示保存密码?

    嘿 我正在开发一个 Web 应用程序 它有一个登录对话框 其工作原理如下 用户点击 登录 登录表单 HTML 通过 AJAX 加载并显示在页面的 DIV 中 用户在字段中输入用户名 密码并单击提交 这不是一个