使用.trigger()模拟多个按键;

时间:2014-12-06 16:33:45

标签: javascript php jquery html css

目前我正在制作一个脚本,当它注入谷歌Chrome控制台时,它会收集一些信息并将其形成一个字符串,取出该字符串并将文本转换为每个字符各自的字符代码。

我的问题在于尝试让jQuery模拟输入字段上的按键,并将字符代码输入到该字段中。

看看我的代码:

var text = $('[id^="nhwMiddlegwt-uid"]').html();
var text_middle = $('[id^="nhwMiddleCommagwt-uid"]').html();
var text_after = $('[id^="nhwRightgwt-uid"]').html();
var finished = text + text_middle + text_after;

console.log(finished);
var output, output_format = "";
for(i=0; i<finished.length; i++) {
    if(output != "") output += ", ";
    output += finished.charCodeAt(i);
}

输出变量包含这样的文本,&#34; 87,101,98,32,68,101,118,101,108,111,112,109,101,110,116和#34;这是#34; Web开发&#34;。

的字符代码字符

现在我需要取char字符串&#34;输出&#34;并更改输入字段的值。

我尝试过使用类似这样的东西:

var e = jQuery.Event("keydown");
e.which = 84; // # Some key code value
$(".txtInput").val(String.fromCharCode(e.which));
$(".txtInput").trigger(e);

现在,如果您只是尝试触发一个键的按键模拟,84,这将有效,但不适用于我的整个输出变量。我已尝试在for循环中循环,但.trigger()事件不允许我这样做,因为添加到变量末尾的.which命令不允许在for中循环,看下面:

for(i=0; i<finished.length; i++) {
        if(output != "") output += ", ";
        output.which += finished.charCodeAt(i);
}

那么,我怎么能得到.trigger();循环遍历选项变量中的每个字符代码?

编辑:只是为了澄清,我不想只是改变输入值。我想使用&#34;输出&#34;来模拟输入字段上的按键。变量字符代码。

1 个答案:

答案 0 :(得分:0)

尝试

var arr = [
    87
    , 101
    , 98
    , 32
    , 68
    , 101
    , 118
    , 101
    , 108
    , 111
    , 112
    , 109
    , 101
    , 110
    , 116
    ];

var output = String.fromCharCode.apply(String, arr);

$("#txtInput")
.on("keydown.str", function(e) {
  alert(e.target.value)
})
.prop("value", output)
.trigger("keydown.str");

&#13;
&#13;
var arr = [
    87
    , 101
    , 98
    , 32
    , 68
    , 101
    , 118
    , 101
    , 108
    , 111
    , 112
    , 109
    , 101
    , 110
    , 116
    ];

var output = String.fromCharCode.apply(String, arr);

$("#txtInput")
.on("keydown.str", function(e) {
  alert(e.target.value)
})
.prop("value", output)
.trigger("keydown.str");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="txtInput" type="text" />
&#13;
&#13;
&#13;