我正在处理我网站的登录对话框。为了让用户不必记住他们的登录详细信息,我想与内置的浏览器密码管理器合作。我已经解决了让Firefox玩球,我必须使用普通的HTML表格。很好,就这样吧。但是,我不会传输未加密的密码。所以我的表单内容如下:
input#1 type="text" name="login"
input#2 type="password"
input#3 type="hidden" name="passwd"
然后我拦截提交并将#2的内容加密到#3,然后关闭表单。在IE和Firefox中使用一种享受,在Opera和Chrome中则不然。只是在SO周围搜索并发现问题是输入#2,它没有“名称”属性。快速测试显示,当我添加name =“ignore”时,它确实在Chrome和Opera中有效。唯一的麻烦是密码现在通过网络纯文本发送,标签为“ignore”。谢谢一堆。省略“名称”的重点是从表格中省略该字段。
如果有一种方法可以抑制输入#2,同时仍然给它一个“名字”?或者我可以使用另一种技巧吗?
感谢。
答案 0 :(得分:1)
原始问题最狭隘的答案是:是的,可以通过Ajax实现。创建一个带有两个名为INPUT的香草FORM并提交BUTTON。 (不要忘记在FORM属性中假装一些动作。)现在它看起来像一个纯文本的HTML事件。接下来在JS中,拦截FORM中的onsubmit并向PHP脚本启动Ajax请求,POST普通登录和哈希密码。从onsubmit返回FALSE以禁止FORM的操作。你完成了。线上没有更多的纯文本密码...