我正在尝试一个简单的 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 的自动填充功能上。将自动完成属性设置为 off
、false
或 new-password
以防密码对我不起作用。 Chrome 似乎忽略了这一点。
Disabling Chrome Autofill
我的解决方案是在执行我的代码之前添加一个小的超时。这远非理想,但它确实有效。
setTimeout( () => {
usernameInput.value = "username";
passwordInput.value = "password"
}, 500 );
关于javascript - 来自 chrome 扩展的自动填充输入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159776/