目前我正在制作一个脚本,当它注入谷歌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;来模拟输入字段上的按键。变量字符代码。
答案 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");
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;