You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript填写ProtonMail登录表单点击登录后值消失如何解决

问题解决方法

问题原因

ProtonMail登录页基于React框架开发,直接通过DOM操作修改输入框的value属性仅会修改DOM的显示值,不会触发框架绑定的输入事件,因此无法同步更新框架内部维护的表单状态。点击登录按钮时,框架会触发表单校验、状态同步逻辑,会将输入框的值重置为框架内部存储的空值,导致之前的赋值消失。

解决方案

需要模拟真实用户的输入交互,主动触发对应的输入事件,让框架捕捉到值的变化并同步内部状态,代码示例如下:

// 填充用户名
const usernameInput = document.querySelector('#username');
usernameInput.focus();
usernameInput.value = 'MyUser';
// 派发输入事件通知框架值更新
usernameInput.dispatchEvent(new Event('input', { bubbles: true }));
usernameInput.dispatchEvent(new Event('change', { bubbles: true }));
usernameInput.blur();

// 填充密码
const passwordInput = document.querySelector('#password');
passwordInput.focus();
passwordInput.value = 'MyPassword';
passwordInput.dispatchEvent(new Event('input', { bubbles: true }));
passwordInput.dispatchEvent(new Event('change', { bubbles: true }));
passwordInput.blur();

效果验证

运行上述代码后再点击「Sign in」登录按钮,输入框的赋值不会被清空,可以正常提交登录请求。

内容的提问来源于stack exchange,提问作者daisy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 00:57:02