JS如何在没有用户输入的情况下使Chrome自动填充注入值

问题描述 投票:0回答:1

我正在编写一个自动登录Chrome扩展程序。要登录我定位的网站,您需要输入:用户名,密码和学生证。由于Chrome浏览器自动完成功能仅保存用户名和密码,因此我开发了一个小的扩展程序,可以插入学生证,然后按登录按钮。

我决定让我的扩展程序仅处理chrome不会自动保存的学生ID,并让chrome浏览器确保用户和密码的安全。即使我将所有内容都保留在本地存储中。并且没有服务器端

我注意到,即使自动完成功能也会插入值,并且它们出现在屏幕上,用户必须按下任意键盘/鼠标按钮,以便这些值将触发“更改”事件,并且输入将具有正确的值。

我正在尝试通过调用焦点/选择/更改事件来模拟它,但是很遗憾没有成功。

我的background.js:

var bgUserIDKey="OUAL_USER_ID"
var currentURL="";
var sendClick = "document.getElementsByTagName('input')[3].click();";
var triggerOnChange="$('#p_sisma').trigger('keydown');$('#p_user').trigger('keydown');";



function BackgroundLogin(){    
  if (currentURL.includes("sso.apps.openu.ac.il/SheiltaPortalLogin?"))
{
    this.SendScriptIntoActiveTab({code:"document.getElementById('p_mis_student').value="+GetUserID()+";"});
    setTimeout(function(){ 
      this.SendScriptIntoActiveTab({code:sendClick});
      this.SendScriptIntoActiveTab({code:this.triggerOnChange});

      this.SendScriptIntoActiveTab({code:"document.getElementById('p_mis_student').value="+GetUserID()+";"});
      BackgroundLogin();

    },350);
    console.log("OUAL Auto logged in.")
  }
}

它正在注入ID,您可以看到它尝试每350ms登录一次,当模拟“提交”按钮时,网站将无法识别用户名和密码,并且仅在键盘或鼠标单击页面上的任何软件后才能正常工作。

没有用户的任何输入,即使插入用户名和密码,表单也只能“看到”学生证,而无需用户名和密码。enter image description here我尝试了多种在网上找到的解决方案,但似乎无济于事。

任何想法?

javascript google-chrome google-chrome-extension autocomplete webkit
1个回答
0
投票

您设法找到解决方案了吗?我有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.