由 chrome 控制台中的 javaScript 填写的 HTML 表单消失了

Posted

技术标签:

【中文标题】由 chrome 控制台中的 javaScript 填写的 HTML 表单消失了【英文标题】:HTML form filled out by javaScript from chrome console disappears 【发布时间】:2021-03-20 18:32:13 【问题描述】:

我想通过从 Chrome 控制台自动生成 javascript 操作 DOM 的代码来填写第三方网站上的 html 表单:

document.getElementById("g_address").value = "abcdefg"

第一步有效,javascript 将更改应用于输入字段。

但是,如果我从控制台或手动按提交,输入字段中所有填写的数据都会消失。如果我开始在任何输入字段中手动输入,也会发生同样的情况。

我的问题 - 是网站阻止我这样做还是一般不可能这样做。

【问题讨论】:

【参考方案1】:

如果没有有关网站的任何信息,就不可能说出正在发生的事情。我怀疑该网站是否故意检测和/或规避您的努力,但网站或应用程序在内存中拥有自己的表单值的内部表示形式并不少见,独立于 html 输入,因此应用程序值的真实来源是 state,而不是 DOM。

输入上的击键可能会更新应用状态,这反过来会触发 DOM 的重新渲染以显示该输入的新值。

因为您绕过了这些交互,所以应用不知道您的更改,因此它们不会被记录下来。然后,当您随后输入输入时,应用会更新 DOM,将输入设置为其最后一个已知值,其中不包括您的更改。

【讨论】:

以上是关于由 chrome 控制台中的 javaScript 填写的 HTML 表单消失了的主要内容,如果未能解决你的问题,请参考以下文章

即循环中的javascript与循环中的chrome [重复]

如何以编程方式禁用 chrome 开发人员工具中的 javascript?

Chrome Inspector 中的 Javascript 调试:变量在手表和控制台中显示为未定义,但可以在悬停时检查

Chrome和Firefox中的秘密复制到剪贴板JavaScript功能?

如何从 Chrome 的 Javascript 控制台获取输入?

Chrome 中的 JavaScript 断点设置和调试技巧