使用 Chrome 扩展在 Google 文档中定义热键
Defining a hotkey in Google documents using Chrome extension
我正在尝试在 Google 文档中定义一个新的热键。我正在尝试使用 Chrome 扩展,问题是当文档区域处于活动状态时,浏览器无法收听触发的事件。这是扩展代码。
编辑:这是清单文件
{
"manifest_version": 2,
"name": "My Cool Extension",
"version": "0.1",
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["jquery-3.2.1.js", "content.js"]
}
],
"permissions": [
"tabs"
]
}
这是 content.js 文件
var map = {17: false};
$('body').keydown(function(e) {
if (e.keyCode in map) {
map[e.keyCode] = true;
if (map[17]) {
console.log("Hi");
}
}
}).keyup(function(e) {
if (e.keyCode in map) {
map[e.keyCode] = false;
}
});
以上扩展在任何网站上都可以正常工作。当您按下 ctrl 时,它会记录 "Hi"。如果包含菜单的上栏处于活动状态,则该扩展程序在任何网站和 Google Docs 本身都可以正常工作。当按下 ctrl 键时,它会记录 Hi。但是当文档区域处于活动状态时,代码不会触发。
背景:我正在考虑使用 Chrome 扩展和 Google Apps 脚本来定义自定义热键,只是遇到了在活动文档区域不触发事件的问题。
使用 chrome.commands API 代替 jQuery。
虽然不可见,但文档编辑内容位于 iframe 中。您的 content_script 未在 iframe 上加载。
您可以通过在 manifest.json 中向您的 content_scripts 添加新规则来启用此功能:
"all_frames": true,
"match_about_blank": true
第一个允许您的代码在框架上加载。第二个允许在空页面(和框架)上加载。连同你现在的 manifest.json:
{
"manifest_version": 2,
"name": "My Cool Extension",
"version": "0.1",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["jquery.js", "content.js"],
"all_frames": true,
"match_about_blank": true
}
],
"permissions": [
"tabs"
]
}
我正在尝试在 Google 文档中定义一个新的热键。我正在尝试使用 Chrome 扩展,问题是当文档区域处于活动状态时,浏览器无法收听触发的事件。这是扩展代码。
编辑:这是清单文件
{
"manifest_version": 2,
"name": "My Cool Extension",
"version": "0.1",
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["jquery-3.2.1.js", "content.js"]
}
],
"permissions": [
"tabs"
]
}
这是 content.js 文件
var map = {17: false};
$('body').keydown(function(e) {
if (e.keyCode in map) {
map[e.keyCode] = true;
if (map[17]) {
console.log("Hi");
}
}
}).keyup(function(e) {
if (e.keyCode in map) {
map[e.keyCode] = false;
}
});
以上扩展在任何网站上都可以正常工作。当您按下 ctrl 时,它会记录 "Hi"。如果包含菜单的上栏处于活动状态,则该扩展程序在任何网站和 Google Docs 本身都可以正常工作。当按下 ctrl 键时,它会记录 Hi。但是当文档区域处于活动状态时,代码不会触发。
背景:我正在考虑使用 Chrome 扩展和 Google Apps 脚本来定义自定义热键,只是遇到了在活动文档区域不触发事件的问题。
使用 chrome.commands API 代替 jQuery。
虽然不可见,但文档编辑内容位于 iframe 中。您的 content_script 未在 iframe 上加载。
您可以通过在 manifest.json 中向您的 content_scripts 添加新规则来启用此功能:
"all_frames": true,
"match_about_blank": true
第一个允许您的代码在框架上加载。第二个允许在空页面(和框架)上加载。连同你现在的 manifest.json:
{
"manifest_version": 2,
"name": "My Cool Extension",
"version": "0.1",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["jquery.js", "content.js"],
"all_frames": true,
"match_about_blank": true
}
],
"permissions": [
"tabs"
]
}