gpt4 book ai didi

javascript - 如何解决 javascript 文本框上的按键要求?

转载 作者:行者123 更新时间:2023-12-02 22:47:34 25 4
gpt4 key购买 nike

您好,感谢您的阅读。

所以我尝试使用 Chrome 自动登录此表单。

https://app.patientaccess.com/login

我使用自己的 Chrome 扩展程序来执行此操作。它基本上只是一个自动填充字段的 JavaScript 文件。我将它用于一系列网站。

例如,这是我用于填写文本框的函数:

function fld(param, val){try{document.querySelectorAll(param)[0].value = val} catch(e){}}

我这样调用它:

fld("input[id='loginForm-email']", "mail@myemail.com")

对于大多数网站来说它都有效。但对于上面的患者访问网站,它没有,我认为原因是因为密码文本框需要物理按键(或监听更改事件或其他内容)。

当我运行我的脚本时,它很好地填充了文本框,但它不允许我单击下一步,因为即使文本框看起来已填充,网页也知道我实际上没有按下任何键。

为了解决这个问题,我必须让我的脚本填写表单,然后单击密码框,按空格键,删除我刚刚输入的空格,然后它让我登录,因为它知道我已经实际按下了在密码框中键入。

所以我的问题是如何让我的自动登录 JavaScript 在此网站上工作?

我认为脚本不能使用按键事件在文本框中输入内容,但这没关系,因为我可以以编程方式填充文本框(使用上面的 fld 函数)。但是我怎样才能让页面相信我已经在密码文本框中输入了内容,以便它可以让我提交表单呢?

正如我所说,我正在使用 JavaScript,如果需要,我可以包含 jQuery。

谢谢。

最佳答案

经过多次尝试和错误,我能够使用 JavaScript 解决这个问题:

var fireOnThis = document.querySelectorAll("[type='text']")[0]
const changeEvent = new Event('input', { bubbles: true, cancelable: true });
fireOnThis.dispatchEvent(changeEvent);

它工作得非常漂亮。我把它变成了一个函数,我所做的就是在自动填充文本字段后运行这个函数(它在填充字段之前不起作用,必须在填充字段之后)。

我在其他网站上尝试了许多其他解决方案,但没有一个有效,但这个有效。哎呀!

我从一个名为 Form Filler 的 Chrome 扩展中得到了这个概念。 。我在试图自动化的表单上尝试了扩展,令我惊讶的是,它毫无问题地填写了表单。所以我看了source code找出它是如何做到的,我发现了这个:

['input', 'click', 'change', 'blur'].forEach(event => {
const changeEvent = new Event(event, { bubbles: true, cancelable: true });
element.dispatchEvent(changeEvent);
});

所以我只是将其转换为我答案中的代码,并且效果很好。因此,这确实应该归功于 Form Filler 的开发者 Hussein Shabbir。

关于javascript - 如何解决 javascript 文本框上的按键要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58328410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com