gpt4 book ai didi

javascript - 单击 Chrome 页面操作时如何捕获键修饰符

转载 作者:行者123 更新时间:2023-11-29 14:54:24 25 4
gpt4 key购买 nike

我有一个页面操作,点击它会将用户带到不同的页面。

enter image description here

当用户单击地址栏中的铅笔图标时,他们将被带到当前选项卡中的不同页面,但是我希望他们能够按住 ctrlalt 使此页面在 选项卡或窗口中打开。这样他们就有了选择权。

查看文档我看不出这是否可行。看起来无法捕获页面操作上的按键。是这样吗?

最佳答案

我想出了一个解决方法。我可以在页面中注入(inject)一个内容脚本来监听 onkeydownonkeyup 事件。标志保存在 localStorage 中,在页面加载时设置为 false,如果按下 altKey 则为 true,当 altKey 不再按下时为 false按下。然后后台页面可以请求单击页面操作时此标志的值是什么...

contentscript.js

// When the page action is clicked this flag could be left as true
// so we always set it to false on page load
localStorage["isAltKeyPressed"] = false;

window.addEventListener('keydown', recordAltKeyPress);
window.addEventListener('keyup', recordAltKeyPress);

function recordAltKeyPress(evt) {
localStorage["isAltKeyPressed"] = evt.altKey;
}

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if(request === "isAltKeyPressed") {
sendResponse( localStorage["isAltKeyPressed"] );
} else {
sendResponse(undefined);
}
});

背景.js

// Function to perform when pageAction is clicked
chrome.pageAction.onClicked.addListener(myFunction);

function myFunction(tab) {
chrome.tabs.sendMessage(tab.id, "isAltKeyPressed", function(response) {
// The response comes back as a string, we need a boolean...
var isAltKeyPressed = (response === "true");
// Do stuff...
});
}

关于javascript - 单击 Chrome 页面操作时如何捕获键修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20327898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com