chromes无法获取表单自动填充的值

问题描述

在改一个登录页面,要根据账号和密码框里有没有内容来设置登录按钮的状态。使用chrome登录并记住密码后,再次进入登录页面,表单会自动填充账号和密码,但是onload里取到的对应值是空的。需要手动点一下页面后才能获取。

有没有办法不需要用户操作即可获取表单自动填充的值?

尝试过的方法

试过setTimeout延迟执行、autofocus、用js触发input事件均不能解决问题

firefox上是可以获取到的

相关代码

<body>
<form name="loginForm" action="test.html" method="GET">
    <div class="login-panel">
        <label>登录</label>
        <input id="username" placeholder="请输入用户名" maxlength="80"/>
        <input class="error" id="password" placeholder="请输入密码" type="password" maxlength="80"/>
        <small id="msg">密码错误</small>
        <button id="submit" disabled>登录</button>
    </div>
</form>
</body>
<script type="text/javascript">
    window.onload = function () {    
        var $u = document.getElementById('username');        
        console.log($u.value)//空的
        setInterval(function () {
            console.log($u.value)//点击页面前一直是空的
        }, 2000)
    }
    
</script>

chrome版本 75.0.3770.142(正式版本) (32 位)

阅读 4.2k
1 个回答

大概是由于安全方面原因,chrome上无法获取到值,可以通过检查伪类:-webkit-autofill判断是否自动填充
https://stackoverflow.com/que...

推荐问题