jQuery (или Javascript), имитирующий нажатие на поле и ввод значения - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь создать пользовательский скрипт (Javascript) для запуска в TamperMonkey для Chrome на http://www.Bitmex.com, целью которого является имитация нажатия на поле ввода, изменение его значения с помощью нажатия клавиш. Причина в том, что сайт, по-видимому, следит за тем, чтобы значение поля было изменено без ручного ввода и без его разрешения. Как это сделать в jQuery (или Javascript). Ниже приведено то, что я пробовал (событие изменения срабатывания и событие щелчка), но это не сработало.

// ==UserScript==
// @name         BitMex
// @namespace    https://bitmex.com/
// @grant        none
// @include      https://bitmex.com/*
// @include      https://www.bitmex.com/*
// @require      http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
var $ = window.jQuery;

$(window).bind("load", function() {
    document.addEventListener('keydown', function(e) {
        var keyLocation = ["Standard", "Left", "Right", "Numpad", "Mobile", "Joystick"][e.location];
        // Pressed ALT -> SELL
        if (keyLocation == 'Left' && !e.shiftKey && !e.ctrlKey && e.altKey && !e.metaKey) {
            $("#orderQty").trigger("click");
            $("#orderQty").val("2");
            $('#orderQty').focus();
            $('#orderQty').keydown();
            $('#orderQty').keypress();
            $('#orderQty').keyup();
            $('#orderQty').change();
            $('#orderQty').blur();
        }
    }, false);
});

Я также попробовал "sendKeys" (http://bililite.com/blog/2011/01/23/improved-sendkeys/), но поле имеет тип "число" и дает мне эту ошибку в консоли:

Uncaught DOMException: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('number') does not support selection.
...