簡體   English   中英

如何使用jQuery模擬輸入字段中的輸入?

[英]How to simulate typing in input field using jQuery?

我想要的是模擬使用javascript輸入<input>字段。

我有以下代碼:

var press = jQuery.Event("keydown");
press.ctrlKey = false;
press.which = 65;
$("#test").trigger(press);

但是當我加載頁面時, #test輸入字段沒有打字字符, #test '的鍵碼代表'A',但沒有'A'輸入。

基本上我想要的是使用Greasemonkey自動鍵入網站。

請給我一些想法或一些我可以用來做這個的庫。
非常感謝!

你可以發送關鍵事件,任何聽取它們的內容都會得到它們, 但它們不會改變輸入 ,所以你不會看到字母A出現,例如。 這主要是安全的事情; 請參閱“手動觸發事件”以進行討論。

因此,如果您希望顯示該字母,則必須在發送鍵事件時更改輸入的值。 有一個jQuery插件,請參閱$.fn.sendkeys插件”

您可以看到<input>如何響應用戶應用的鍵,鍵事件以及此jsFiddle上的插件。

作為參考,這是jsFiddle的關鍵代碼:

$("button").click ( function (zEvent) {
    if (zEvent.target.id == "simA_plain") {
        console.log ("Send Plain key event");
        var keyVal = 65;
        $("#eventTarg").trigger ( {
            type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
        } );
    }
    else {
        console.log ("Use the Plugin to simulate a keystroke");
        $("#eventTarg").sendkeys ("B") ;
    }
} );


如果您只是試圖“模擬在<input>上鍵入”,該插件應該足夠了。 但是,根據您真正想要做的事情,您可能需要執行以下一項或多項操作:

  1. 只需將文本設置為您想要的文本即可。
  2. 發送keydown事件,如果頁面的javascript觸發了該事件。
  3. 同樣,如果頁面的javascript觸發了該事件,則發送change事件等。
  4. 只需找到並直接調用頁面的javascript即可。 使用腳本注入位置hackunsafeWindow和/或@grant none模式來執行此操作。
  5. 別的什么? 陳述您的真實目標並鏈接到目標頁面。

暫無
暫無

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

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