使用JavaScript,我試圖爲用戶提供一個選項來打開粘滯鍵。模擬打開Windows中的粘滯鍵
手動這可以通過按Shift鍵5次完成。
以下沒有成功。還嘗試將shiftKeyArg設置爲true。
function stickyKeys() {
var keyboardEvent1 = document.createEvent("KeyboardEvent");
var initMethod = typeof keyboardEvent1.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent1[initMethod](
"keydown", // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
16,
0
);
var keyboardEvent2 = document.createEvent("KeyboardEvent");
var initMethod = typeof keyboardEvent2.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent2[initMethod](
"keyup", // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
16,
0
);
document.dispatchEvent(keyboardEvent1);
document.dispatchEvent(keyboardEvent2);
document.dispatchEvent(keyboardEvent1);
document.dispatchEvent(keyboardEvent2);
document.dispatchEvent(keyboardEvent1);
document.dispatchEvent(keyboardEvent2);
document.dispatchEvent(keyboardEvent1);
document.dispatchEvent(keyboardEvent2);
document.dispatchEvent(keyboardEvent1);
document.dispatchEvent(keyboardEvent2);
alert("sticky keys on");
}
由於您只是在瀏覽器的JavaScript引擎中觸發事件,而不是在處理所有Windows事件的Win32API中,所以無法從瀏覽器(至少是具有良好安全性的標準瀏覽器)工作。出於安全原因,這是故意的。你需要一個插件,比如ActiveX或者一些非標準化的瀏覽器,將事件提升到操作系統。 – ppumkin 2015-04-01 14:17:00
我**希望** javascript永遠不能做到這一點... – Alex 2015-04-01 14:18:36
好吧,亞歷克斯它可以,而不是在典型的瀏覽器,擔心用戶的安全。 – ppumkin 2015-04-01 14:19:34