簡體   English   中英

執行按鍵事件

[英]Execute Key Press Event

我一直在嘗試開發POS解決方案,而到目前為止,打開Till Drawer一直是最困難的部分。

目前,我正在嘗試通過組合鍵來執行此操作。 即CTRL + SHIFT + p。 我需要做的是在調用某個函數時執行這些鍵。 我已經建立了系統,並且已經准備好功能並等待。

我正在使用自動熱鍵將這些鍵映射到打開抽屜的exe。 如果我按鍵盤上的鍵,則效果很好。 但是,我不想讓用戶按下這些鍵,而是希望自動執行它們。 我已經搜索了很多,許多解決方案正在偵聽是否按下了某個鍵,然后做出相應的反應。

我發現的使我稍微前進的當前代碼如下(根據我的理解,此代碼模擬了按CTRL + SHITF + p的情況):

e = jQuery.Event("keypress")
    e.which = 80; //choose the one you want
    e.ctrlKey = true;
    e.shiftKey = true;
    $("#pos-paid").keypress(function(){alert('keypress triggered')}).trigger(e)

這確實提醒我該鍵已被按下。 jQuery絕對不是我的強項,因此如果該函數是胡扯,請原諒我。

我正在使用Chrome,並且了解要考慮的安全問題。 有人說這是不可能的,其他人說這是可能的。

有人可以告訴我這是否可以實現,有人可以告訴我如何實現此目標的正確方向或與此相關的一些類似問題/文檔嗎?

我目前嘗試創建擴展程序的注釋在訪問本地文件時遇到問題。

我嘗試創建一個與應用程序進行通信的擴展程序,但是也遇到了問題。

我想避免任何需要聯網的解決方案。

我擁有將訪問該站點的客戶端計算機,因此可以准備該站點並添加實現該目標所需的任何軟件。

這是我針對此問題的其他兩個問題。

通過網站與現金抽屜進行通信

使用Google Chrome擴展程序訪問本地文件

如果從內容腳本執行KeyboardEvent ,應該沒有問題。 jQuery代碼將不起作用。

這是一個將觸發CTRL + SHIFT + p'keydown'事件的函數。 Chrome在此方面也存在漏洞,需要使用pollyfill才能使其正常工作:

var event_object = document.getElementById('pos-paid');

function emitKeyEvent() {

    //    This function triggers the event
    var keyEvent = new KeyboardEvent("keypress", {key : "p", char : "p", ctrlKey: true, shiftKey: true});
    event_object.dispatchEvent(keyEvent);
}

event_object.addEventListener('keypress', function(e){

    //    This function listens to the event
    console.log(event, 'ctrlKey: ' + e.ctrlKey, 'shiftKey: '+ e.shiftKey, e.char, e.key);
    alert('CTRL + SHIFT + p pressed')

    e.preventDefault();

});

//    Just trigger CTRL + SHIFT + p with emitKeyEvent();
emitKeyEvent();

您可以在這里進行測試: http : //jsfiddle.net/u3gdQ/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM