页面加载后,密码管理器如何运行JS?

时间:2018-06-24 16:14:57

标签: javascript pageload

密码管理器(PMs)是一种工具,可以在加载页面后自动完成简单的登录表单填充,即使是安全性较高的工具,例如在线银行。我想在JS中创建自己的个人PM,该PM可以运行更复杂的特定于站点的程序,例如处理可选的子密码和奇怪的多页或多项选择登录名(例如Google使用的登录名)。

在加载目标页面之后且目标页面本身运行JS之前,现有的PM如何继续运行JS?他们如何保留控制权?必须有一些非显而易见但有效的把戏。有人可以给出简短的经过测试的代码框架,该代码将用户名插入一些知名站点的登录页面吗?还是此任务需要掌握浏览器扩展/插件的编写?

1 个答案:

答案 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);

请注意,如果在将值写入输入后将其清除,则此操作将无效。