密码管理器(PMs)是一种工具,可以在加载页面后自动完成简单的登录表单填充,即使是安全性较高的工具,例如在线银行。我想在JS中创建自己的个人PM,该PM可以运行更复杂的特定于站点的程序,例如处理可选的子密码和奇怪的多页或多项选择登录名(例如Google使用的登录名)。
在加载目标页面之后且目标页面本身运行JS之前,现有的PM如何继续运行JS?他们如何保留控制权?必须有一些非显而易见但有效的把戏。有人可以给出简短的经过测试的代码框架,该代码将用户名插入一些知名站点的登录页面吗?还是此任务需要掌握浏览器扩展/插件的编写?
答案 0 :(得分:0)
好吧,您将必须手动设置要为查询选择器和值保存哪些字段,然后将此代码用于填充器:
var pmdata=[
{query:/*query selector here*/,value:/*input value*/},
{query:/*another query selector here*/,value:/*another input value*/}
];
var passwordMan=setInterval(function(){
pmdata.forEach(function(e){
if(document.querySelector(e.query)){
document.querySelector(e.query).value=e.value;
pmdata.splice(pmdata.indexOf(e),1);
}
});
if(pmdata.length==0)clearInterval(passwordMan);
},100);
请注意,如果在将值写入输入后将其清除,则此操作将无效。