你需要在你的擴展工作的網頁上下文中激發事件。這是對我有用的東西。
- 在網頁中注入jQuery。
- 我正在使用這個jQuery擴展:https://github.com/jquery/jquery-simulate 注入此網頁以及。
- 在注入腳本之前,我使用jQuery重命名了所有$事件,原因是不會與網頁腳本產生衝突。
您可以使用以下方式注入腳本(有注入JS的其他方式):
添加以下功能擴展的內容腳本
function injectJQuery() {
var s = document.createElement('script');
s.textContent = '(' + function() {
//paste jQuery plugin here
} + ')()';
}
然後同樣的模式用於注入模擬擴展
function injectJQuerySimulate() {
var s = document.createElement('script');
s.textContent = '(' + function() {
//paste jQuery simulate plugin here
} + ')()';
}
當你的擴展的內容腳本運行時調用這個tw o函數一次,以便在網頁中注入腳本。
現在,您可以發送的keydown事件與jQuery的使用下面的函數模擬插件的網頁:
function sendKeydown(elemId, keyCode) {
var s = document.createElement('script');
s.textContent = '(' + function(elemId, keyCode) {
jQuery(elemId).simulate('keydown', {
keyCode: keyCode
});
} + ')("' + elemId + '", "' + keyCode + '");';
(document.head || document.documentElement).appendChild(s);
s.parentNode.removeChild(s);
}
使用舉例:
爲ASCII鍵碼
sendKeydown('#SomeElementId', 37); //37 is the keyCode for left arrow key
參考表:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes