gpt4 book ai didi

javascript - Chrome 扩展程序 : detecting keypresses in Google Docs

转载 作者:行者123 更新时间:2023-11-28 13:13:44 25 4
gpt4 key购买 nike

嘿,我和我的 friend 们刚接触 javascript,并且遇到了一些代码问题。目前,我们正在尝试制作一个 Chrome 扩展,通过检测击键来检测用户何时以及对特定 google 文档进行了多少操作。

我们当前的方法涉及创建一个“按键”事件监听器。我们将其放入在任何 docs.google 网页上运行的 content.js 文件中。问题是,当您在页面上编辑标题/其他内容时它会起作用,但由于某种原因,当用户实际编辑文档时它不会注册。我们在其他网站上尝试过,它可以工作,而将其添加到background.js 则不起作用。

var handler = function (e) { 
handler.data.push(e);
console.log("success");
console.log(handler.data);
}
handler.data = [];
window.addEventListener("keydown", handler);
document.addEventListener("keydown", handler);

因此,我们尝试更改 Google 文档文档“iframe”的权限,以便我们可以使用内容脚本,但它仍然不起作用(这是代码)

var divs = document.getElementsByTagName("iframe");
for(var i = 0; i < divs.length; i++){
divs[i].sandbox = 'allow-scripts'
divs[i].addEventListener('keydown', handler, true);

感谢任何帮助

最佳答案

我没有看到 iframe 用于 g-docs 或 g-sheet 上的主要内容,但如果您坚持,可以使用 "all_frames": true"match_about_blank": true在manifest.json内容脚本声明中,使其自动在所有iframe中运行。

另一个想法是在站点看到事件之前捕获事件:声明 "run_at": "document_start"对于manifest.json 中的内容脚本,并使用 true 表示 useCapture addEventListener 的参数: document.addEventListener("keydown", handler, true); - 此行应在内容脚本的主代码中执行,以在构建页面 DOM 之前注册监听器,不要不要将其放入某些 loadDOMContentLoaded 回调中。

关于javascript - Chrome 扩展程序 : detecting keypresses in Google Docs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435556/

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