我想通过Greasemonkey中的用户脚本创建并触发KeyPress事件,但我发现createEvent的isTrusted
始终设置为false
。
isTrusted
是只读属性,但我读到它可以通过像Greasemonkey这样的扩展设置为True,但它对我不起作用。
有没有办法将isTrusted
设置为true
?
答案 0 :(得分:1)
没有。你目前无法使用Greasemonkey执行此操作。在大多数情况下,Greasemonkey只运行javascript,javascript无法设置isTrusted
。它会违抗the spec并击败可信事件的整个目的。
那说,理论上,a Firefox add-on should be able to spoof isTrusted
,但Greasemonkey没有将该功能扩展到其用户。
有a feature request to add isTrusted
capability to Greasemonkey。您可以去那里并将您的声音添加到讨论中,或者您可以分享Greasemonkey代码并自行添加功能。
有a related question for Google Chrome,但在该浏览器中可能无法使用欺骗isTrusted
,即使是扩展程序也是如此。
答案 1 :(得分:-1)
从理论上讲,您可以使用WebSocket创建一个受信任的事件,JavaScript使用该WebSocket来与在后台运行的python脚本进行通信,并按下该键,但这是很多代码。
Python代码:
import asyncio
import websockets
import pyautogui
async def watchlist(websocket, path):
while (1==1):
key = await websocket.recv()
pyautogui.press(key)
start_server = websockets.serve(watchlist, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Js Code按键:
ws = new WebSocket("ws://localhost:8765")
function sendkey(key){
ws.send(key)
}
sendkey('a')