簡體   English   中英

如何用Javascript在輸入框模擬打字?

[英]How to Simulate Typing in an Input Box with Javascript?

我想要做的是讓輸入框認為我正在向其中輸入數字,而不是更改所述輸入的值。 所以我做的第一件事就是讓輸入框成為一個變量:

var input = document.querySelectorAll("input")[1];

然后我所做的就是聚焦輸入框,讓它看起來像是我用鼠標點擊了它:

input.select();

這是我現在堅持的部分。 我想做的是讓輸入框認為我輸入了一個數字,比如 41。如果有人能告訴我我需要在控制台中輸入什么代碼才能讓輸入框認為我輸入了“41” , 這將不勝感激。 謝謝你。

您可以使用setTimeout並每次添加一個字符,如下所示:

 var input = document.querySelectorAll("input")[1]; input.select(); // you can also use input.focus() input.value=""; var text = "41"; var l=text.length; var current = 0; var time = 1000; var write_text = function() { input.value+=text[current]; if(current < l-1) { current++; setTimeout(function(){write_text()},time); } else { input.setAttribute('value',input.value); } } setTimeout(function(){write_text()},time);
 <input type="text"> <input type="text">

這將適用於您想要編寫的任何內容,您只需根據需要調整變量即可。

我知道這真的是很久以前的事了,但我目前正在處理一個非常相似的問題並且遇到了與原始海報完全相同的問題,我發現了這個代碼片段( 信用):

element.dispatchEvent(new KeyboardEvent("keydown", {
    key: "e",
    keyCode: 69,        // example values.
    code: "KeyE",       // put everything you need in this object.
    which: 69,
    shiftKey: false,    // you don't need to include values
    ctrlKey: false,     // if you aren't going to use them.
    metaKey: false      // these are here for example's sake.
}));

您可以在此處找到您需要的特定密鑰代碼。

這絕對是一種極其復雜的做事方式,您需要一些東西將您擁有的任何輸入字符串轉換為 KeyboardEvent 實例列表,然后一個一個地發送它們,但據我所知這是正確的真正“模擬”鍵盤輸入的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM