javascript - 来自 chrome 扩展的自动填充输入不起作用

标签 javascript google-chrome google-chrome-extension

我正在尝试一个简单的 Chrome 扩展程序,但遇到了障碍。
我正在尝试自动填写登录表单(用户名和密码)。 (作为备用,以防 chrome 自动填充功能被禁用)
我已经设法将脚本注入(inject)到页面中,并且我可以控制台记录我的目标输入。但它不会设置值。

list .json

{
  "manifest_version": 2,
  "name": "Test Extension",
  "description": "Test Extension",
  "version": "1.0",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "index.html"
  },
  "content_scripts": [
    {
        "matches": [ "*://*.domain.net/*" ],
        "js": [ "autofill.js" ]
    }
  ],
  "permissions": [
    "tabs",
    "*://*.domain.net/*"
  ]
}

autofill.js

console.log( "Script properly injected into page" );

let usernameInput = document.querySelector( 'input[name="username"]' );
let passwordInput = document.querySelector( 'input[name="password"]' );

console.log( usernameInput );

usernameInput.value = "test";

我在这里错过了什么?

最佳答案

显然,问题出在 Chrome 的自动填充功能上。将自动完成属性设置为 offfalsenew-password 以防密码对我不起作用。 Chrome 似乎忽略了这一点。
Disabling Chrome Autofill

我的解决方案是在执行我的代码之前添加一个小的超时。这远非理想,但它确实有效。

setTimeout( () => {
    usernameInput.value = "username";
    passwordInput.value = "password"
}, 500 );

关于javascript - 来自 chrome 扩展的自动填充输入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159776/

相关文章:

javascript - 如何在 Chrome 中实现推送通知

javascript - 调用chrome.tabs.query后,结果不可用

javascript - 如何在jsp中添加点击按钮时的下拉菜单?

javascript - document.write ("some text") 删除 URL 和大约 :blank is shown

python - 通过 Chrome 扩展将 url 发送到桌面应用程序

jquery - 图像属性是 DOM 的一部分吗(jQuery - webkit 与其他浏览器不一致)?

javascript - XMLHttpRequest 不适用于移动设备上的 chrome

javascript - <cfmediaplayer> 如何通过 javascript 调用暂停播放器?

javascript - 客户端 JavaScript 未在 Apps 脚本模板中呈现

CSS:Mozilla 滚动条插入我的元素(包括 jsfiddle)