2012-12-11 105 views
1

我還想感謝提前花在這個任何的時間和精力。好吧,我有一個腳本,它應該在頁面加載後3秒後模擬按鍵事件。我想要這個按鍵來運行鍵盤快捷鍵,但只要按下鍵就可以完成。我怎麼能得到它實際上運行一旦按下的快捷方式?不知道這是否可能。再次感謝。爲模擬按鍵jQuery腳本不向下運行鍵盤快捷鍵

<script> 
setTimeout(function(){ 
// jQuery plugin. Called on a jQuery object, not directly. 
jQuery.fn.simulateKeyPress = function(character) { 
    // Internally calls jQuery.event.trigger 
    // with arguments (Event, data, elem). That last arguments is very important! 
    jQuery(this).trigger({ type: 'keypress', which: character.charCodeAt(0) }); 
}; 

jQuery(document).ready(function($) { 
    // Bind event handler 
    $('body').keypress(function(e) { 
    alert(String.fromCharCode(e.which)); 
    console.log(e); 
    }); 
    // Simulate the key press 
    $('body').simulateKeyPress('z'); 
}); 
}, 3000); //3 seconds 

</script> 

<script type="text/javascript"> 
// define a handler 
function doc_keyUp(e) { 

    // this would test for whichever key is 40 and the ctrl key at the same time 
    if (e.ctrlKey && e.keyCode == 122) { 
     // call your function to do the thing 
     pauseSound(); 
    } 
} 
// register the handler 
document.addEventListener('keyup', doc_keyUp, false); 
</script> 

回答

7

如果你想解僱一些瀏覽器或系統範圍的鍵盤快捷方式,那麼它是一個死路一條 - 因安全原因無法完成。如果可能的話,你可以在整個互聯網上安裝頁面,例如,將它們自己添加到書籤中,甚至不用詢問(通過使用Javascript來觸發CTRL + B快捷鍵)。

+0

好的,謝謝你的肯定。我有點想通...但想要更加確定...........所以我甚至不能創建一個按鈕,人們可以點擊它將引起鍵盤shorcut? – user1480167

+0

不,只使用Javascript你不能這樣做。 – WTK

+0

即時修復以標記爲由您回答...您會推薦使用除JavaScript之外的其他類型的腳本來實現這些行中的某些內容嗎? – user1480167

2

你不首先添加您的處理程序....做

jQuery(document).ready(function($) { 
    // Bind event handler 
    $('body').keypress(function(e) { 
     alert(String.fromCharCode(e.which)); 
    }); 
}); 
jQuery.fn.simulateKeyPress = function(character) { 
    jQuery(this).trigger({ 
     type: 'keypress', 
     which: character.charCodeAt(0) 
    }); 
}; 

setTimeout(function() { 
    $('body').simulateKeyPress('z'); 
}, 3000); //3 seconds 

例子來測試:http://jsfiddle.net/x8a25/1/