第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中觸發(fā)鍵盤事件

在JavaScript中觸發(fā)鍵盤事件

狐的傳說 2019-07-23 14:36:24
在JavaScript中觸發(fā)鍵盤事件我正在嘗試使用JavaScript在Safari中模擬鍵盤事件。我試過這個:var event = document.createEvent("KeyboardEvent");event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);......還有這個:var event = document.createEvent("UIEvents");event.initUIEvent("keypress", true, true, window, 1);event.keyCode = 115;但是,在嘗試這兩種方法之后,我遇到了同樣的問題:在執(zhí)行代碼之后,事件對象的keyCode/ whichproperties設(shè)置為0,而不是115。有誰知道如何在Safari中可靠地創(chuàng)建和發(fā)送鍵盤事件?(如果可能的話,我寧愿用純JavaScript實現(xiàn)它。)
查看完整描述

3 回答

?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

我正在研究DOM Keyboard Event Level 3 polyfill。在最新的瀏覽器中或使用此polyfill,您可以執(zhí)行以下操作:

element.addEventListener("keydown", function(e){ console.log(e.key, e.char, e.keyCode) })var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", char : "Q", shiftKey : true});element.dispatchEvent(e);//If you need legacy property "keyCode"// Note: In some browsers you can't overwrite "keyCode" property. (At least in Safari)delete e.keyCode;Object.defineProperty(e, "keyCode", {"value" : 666})

更新:

現(xiàn)在我的polyfill支持遺留屬性“keyCode”,“charCode”和“which”

var e = new KeyboardEvent("keydown", {
    bubbles : true,
    cancelable : true,
    char : "Q",
    key : "q",
    shiftKey : true,
    keyCode : 81});

這里的例子

另外這里是與我的polyfill分開的跨瀏覽器initKeyboardEvent :( 要點)

Polyfill 演示


查看完整回答
反對 回復 2019-07-23
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

你是否正確派遣了這個活動?

function simulateKeyEvent(character) {
  var evt = document.createEvent("KeyboardEvent");
  (evt.initKeyEvent || evt.initKeyboardEvent)("keypress", true, true, window,
                    0, 0, 0, 0,
                    0, character.charCodeAt(0)) 
  var canceled = !body.dispatchEvent(evt);
  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }}

如果你使用jQuery,你可以這樣做:

function simulateKeyPress(character) {
  jQuery.event.trigger({ type : 'keypress', which : character.charCodeAt(0) });}


查看完整回答
反對 回復 2019-07-23
?
天涯盡頭無女友

TA貢獻1831條經(jīng)驗 獲得超9個贊

這是由于Webkit中的一個錯誤。

您可以使用createEvent('Event')而不是createEvent('KeyboardEvent'),然后分配keyCode屬性來解決Webkit錯誤。請參閱此答案此示例


查看完整回答
反對 回復 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 2495 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號