javascript - 如何在 Chrome 扩展内容脚本中模拟输入和更改输入值
问题描述
我需要一种方法来用我的新值更改输入字段的值
我试过input.value
没有用。试过这个功能:
function simulateTyping(element, value, i) {
i === 0 && element.setAttribute("value", value);
i === 0 && (element.value = "");
if (i < value.length) {
element.value += value.charAt(i);
element.dispatchEvent(
new Event("textInput", {
data: value.charAt(i),
inputType: "textInput",
bubbles: true,
cancelable: true,
})
);
element.dispatchEvent(
new Event("input", {
bubbles: true,
data: value.charAt(i),
cancelable: true,
})
);
setTimeout(simulateTyping.bind(this, element, value, i + 1), 10);
} else {
element.dispatchEvent(
new Event("change", {
bubbles: true,
cancelable: true,
})
);
element.dispatchEvent(new Event("blur", { bubbles: true }));
var evt = document.createEvent("KeyboardEvent");
evt.initEvent("keyup", true, true);
element.dispatchEvent(evt);
}
}
这个函数改变了值,但是网站突然改变了值,但是如果我用键盘输入数字,网站并没有改变值。
我认为我们需要找到更多东西来实际模拟真正的按键 这是网站 https://tibiablackjack.com/crash
视频演示 https://www.loom.com/share/cb568c04ac85427395c2f0e1481c7fb9
解决方案
推荐阅读
- orm - Sequelize - 在父范围内排除默认子关系
- c++ - 在 CPU 上变换顶点不会产生归一化坐标
- extjs - 当用户单击位于选项卡面板内的网格内的邮件时如何显示内容面板
- here-api - 如何访问 trafficanalytics.here.com
- node.js - TypeError: user.comparePassword is not a function in express js
- reactjs - Prevent React component from resetting the data when a dialog open
- vb.net - How to avoid using two nested for-loops for two related DataTables
- c - How can I get GDB to work well on a program that uses the TRAP signal?
- fiware - Query entities by the logical operator OR with Fiware Orion
- sql-server - 某些列应全部填充或全部为空