我有個奇怪的需求,平時需要在一個屏蔽了復制/黏貼的頁面輸入難記的命令,想要用js來模擬用戶的鍵盤操作,如按下某個鍵、釋放某個鍵或者輸入文本內容,主要是為了加快或是替代重復輸入。
在JavaScript中,用KeyboardEvent對象來模擬鍵盤事件,再調用 dispatchEvent 方法來觸發鍵盤事件
<!DOCTYPE html>
<html>
<body>
<div><p id="viewer">Default</p></div>
<script>
(function() {
var viewer =
document.addEventListener("keypress", function(e) {
var viewer = document.getElementById("viewer");
viewer.innerHTML += String.fromCharCode(e.code);
});
})();
function pasteText() {
var clipboard = document.getElementById("clipboard");
for (let c of clipboard.value) {
var cCode = c.charCodeAt(0);
console.log(c+": "+cCode);
var forgeEvent = new KeyboardEvent("keydown", {
keyCode: cCode
});
document.dispatchEvent(forgeEvent);
}
}
</script>
<div style="position:fixed;z-index:100;top:0px;right:0px;width:450px;">
<textarea id="clipboard" rows="15" cols="60" placeholder="輸入要粘貼的內容"></textarea>
<input id="copy" type="submit" value="粘貼" onclick="pasteText()">
</div>
</body>
</html>
阿斯頓