searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

js模拟键盘输入

2024-06-28 10:02:54
36
0

我有个奇怪的需求,平时需要在一个屏蔽了复制/黏贴的页面输入难记的命令,想要用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>

阿斯顿

0条评论
0 / 1000
林****斌
1文章数
0粉丝数
林****斌
1 文章 | 0 粉丝
林****斌
1文章数
0粉丝数
林****斌
1 文章 | 0 粉丝
原创

js模拟键盘输入

2024-06-28 10:02:54
36
0

我有个奇怪的需求,平时需要在一个屏蔽了复制/黏贴的页面输入难记的命令,想要用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>

阿斯顿

文章来自个人专栏
lyb的脚本
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0