Bạn có thể gửi các sự kiện quan trọng và mọi thứ lắng nghe họ sẽ nhận được chúng, nhưng chúng sẽ không thay đổi đầu vào, vì vậy bạn sẽ không thấy chữ A
xuất hiện. Điều này chủ yếu là một điều bảo mật; xem "Manually firing events" để thảo luận về điều đó.
Vì vậy, nếu bạn muốn thư xuất hiện, bạn phải thay đổi giá trị của đầu vào khi bạn gửi sự kiện quan trọng. Có một plugin jQuery cho điều đó, xem "The $.fn.sendkeys
Plugin".
Bạn có thể xem cách <input>
phản ứng với các phím do người dùng áp dụng, sự kiện chính và plugin đó tại this jsFiddle.
Để tham khảo, đây là mảnh chìa khóa mã từ jsFiddle rằng:
$("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") ;
}
});
Đó Plugin sẽ là đủ nếu bạn chỉ cố gắng để "mô phỏng gõ trên một <input>
". Tuy nhiên, tùy thuộc vào những gì bạn đang thực sự cố gắng để làm, bạn có thể cần phải làm một hoặc nhiều điều sau đây:
- Chỉ cần thiết lập văn bản với những gì bạn muốn nó được.
- Gửi sự kiện
keydown
, nếu javascript của trang kích hoạt.
- Tương tự, gửi sự kiện
change
, v.v. nếu javascript của trang kích hoạt.
- Chỉ cần tìm và gọi trực tiếp javascript của trang. Sử dụng chức năng tiêm tập lệnh, vị trí hack,
unsafeWindow
và/hoặc @grant none
chế độ để thực hiện điều đó.
- Cái gì khác? Nhà nước mục tiêu thực sự của bạn và liên kết đến trang mục tiêu.
Nguồn
2012-12-19 06:09:34
nó thực sự hữu ích :) – shuboy2014