【问题标题】:Input Value into input(username,password,email etc) and submit using javascript将值输入输入(用户名、密码、电子邮件等)并使用 javascript 提交
【发布时间】:2018-08-29 11:45:28
【问题描述】:

我正在处理扩展程序,我需要将用户名/电子邮件和密码输入字段然后提交。

我在很多网站上都做到了这一点,但在少数几个网站上却遇到了麻烦,例如“https://app.hubspot.com/login/”。

当我使用 javascript/Jquery 的“.val()”方法放置值时,我将值显示到用户名输入中,但值属性通过检查元素保持空白检查。

我什至尝试使用 javascript 的“setAttribute()”方法放置属性。

我已设法将值放入文本框中,但是当我单击用户名文本框时,值变为空白。

除了用户名文本框。如果我尝试将值放入密码字段中,它不会在焦点或模糊时变为空白,但使用 javascript 放置值不会使登录按钮可点击。但是当我使用键盘打字时。一切都如预期的那样正常。唯一的问题是可以通过javascript登录。

当我尝试触发点击事件时,它什么也不做。 当我尝试直接触发提交时,它什么也不做。 当我尝试触发但找到最近的表单元素然后提交它时,它只会刷新。

我什至尝试使用这个来模拟输入

            var item = jQuery("#username");
            jQuery(item).focus();
            jQuery(item).keydown();
            jQuery(item).keypress({which: 'A'.charCodeAt(0)});
            jQuery(item).keyup();
            jQuery(item).change();
            jQuery(item).blur();

我现在不知道我需要做什么才能在这几个网站上实现这一目标。

请注意:- 我已经在浏览器控制台本身尝试了所有这些

非常感谢您的时间和帮助

非常感谢大家。

【问题讨论】:

    标签: javascript web autologin


    【解决方案1】:

    根据我的理解,对于这个使用 React JS 开发的站点 https://app.hubspot.com/login/,直接通过使用 javascript/Jquery 定位元素来改变 DOM 将无济于事,因为 React 保留了一个虚拟 dom,它会在每次更改时更新并最终与real dom 并将缺失的更改应用于 real dom

    在您的情况下,当您通过 javascript/Jquery 定位任何元素并更改任何值时,您正在更新真实 dom,但这些更改不会在虚拟 dom 中更新,因此当您开始手动与网站交互时,您的更改不会反映出来。

    【讨论】:

    • 您好,谢谢您的回复!市场上有一个应用程序已经成功地做到了这一点。应用程序/扩展程序的名称是 Dashlane。它可以成功登录。可能的选项/方法是什么?
    猜你喜欢
    • 2016-07-25
    • 2010-09-11
    • 2016-01-30
    • 2020-03-19
    • 2012-01-26
    • 2023-03-20
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多