Я пытаюсь создать пользовательский скрипт (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.