以编程方式提交表单(JavaScript)

时间:2019-09-14 19:39:53

标签: javascript jquery google-chrome console discord

我正在尝试使Discord Web App上的特定任务自动化。我只想:

  1. 输入一些文本✔工作
  2. 提交消息☓不起作用

(全部以编程方式)

enter image description here

13 = 返回

(在上面的gif文件中,我在键盘上gif文件的末尾按Enter /返回-不幸的是,它不会从代码中触发!)

我不想为此使用node.js,谢谢!

在discordapp.com上复制的步骤:

  1. 在浏览器上登录Discordapp.com

  2. 加入任何文本聊天室

  3. 在控制台中输入代码并运行

-

我正在为我的浏览器编写一个用于Discord的个人客户端插件。唯一的问题是我无法弄清楚如何使用JS提交消息。

我可以将文本输入到textarea中,但是我不能以任何方式提交它。表单内没有提交按钮。我尝试从JS提交它,但它会重新加载页面。我试图模仿输入框中的Enter键,但这也不起作用。

我设法使其正常工作的唯一方法是在重复计时器上使用AutoKeyboard应用程序,但是我需要以编程方式完成。

这是我尝试过的(JavaScript):

输入值后尝试模拟输入键

function triggerEvent(el, type, keyCode) {
    if ('createEvent' in document) {
            // modern browsers, IE9+
            var e = document.createEvent('HTMLEvents');
            e.keyCode = keyCode;
            e.initEvent(type, false, true);
            el.dispatchEvent(e);
    } else {
        // IE 8
        var e = document.createEventObject();
        e.keyCode = keyCode;
        e.eventType = type;
        el.fireEvent('on'+e.eventType, e);
    }
}

var nextButton = document.getElementsByClassName('textArea-2Spzkt')[0];
triggerEvent(nextButton, 'keydown', 13); // simulate mouse/enter key press[/code]

另一个:

$('textarea[placeholder="Message #bot-spam"]').val('My Message').focus();
$('textarea[placeholder="Message #bot-spam"]').trigger('keydown', {which: 'keyReturn'.charCodeAt(0)});[/code]

另一个:

var e = $.Event('keydown');
e.which = 13;
$('textarea[placeholder="Message #bot-spam"]').val('My Message').focus();
$('textarea[placeholder="Message #bot-spam"]').trigger(e);[/code]

另一个:

var y = document.getElementsByClassName('textArea-2Spzkt');
var el = y[0];
el.focus();
var e = document.createEvent('KeyEvents');
e.initKeyEvent('keypress', true, true, window, false, false, false, false, 0, 0x0d);

var status = el.dispatchEvent(e);

console.log( status );

另一个:

var e = document.createEvent('KeyEvents');
e.initKeyEvent('keypress', true, true, window, false, false, false, false, 0, 0x0c);

console.log( $('textarea[placeholder="Message #bot-spam"]')[0].dispatchEvent(e));[/code]

var e = jQuery.Event("keydown");
e.which = 13;
$('textarea[placeholder="Message #bot-spam"]').val('My Message').trigger(e);

尝试提交表单,但只是重新加载页面

$('textarea[placeholder="Message #bot-spam"]').val('My Message').closest('form').submit();

我也尝试查看代码中的所有事件,但是我看不到它运行的任何特定功能只是自己运行它。

我还能在这里做什么?简单地提交一条消息怎么会这么困难...?

0 个答案:

没有答案