键盘绑定在Chrome扩展内容脚本与GMail
Keyboard bindings in Chrome Extension content script with GMail
我正在创建一个Chrome扩展,使用键绑定(即将使用javascript keydown和keyup事件处理程序)通过内容脚本。不过,我在尝试将此功能与GMail一起使用时遇到了一个障碍。
以下代码(内容脚本)中的处理程序函数似乎只有在我通过GChat与某人聊天时才会触发:
$(window).bind('keydown', function(e){console.log('yay!');});
不幸的是,它似乎没有激活任何其他地方,包括当我试图发送电子邮件。我查看了GMail网页源代码,结果发现所有实际显示的内容都驻留在id为canvas_frame
的iFrame中,所以我尝试了这个:
$('#canvas_frame').content().live('keydown', function(e){console.log('yay!');});
:
$('#canvas_frame').content().find('body').live('keydown', function(e){
console.log('yay!');
});
不幸的是,这也不起作用。
我的manifest.json
看起来像这样:
{
"name": "extension",
"version": "1.0",
"description": "description",
"background_page": "background.html",
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"css": [],
"js": [
"main.js"
]
}
],
"all_frames": true,
"permissions": [
"http://*/*", "https://*/*"
]
}
我想知道是否有人知道发生了什么,用GMail做这件事的正确方法是什么,如果$('#canvas_frame').content().live(...)
是正确的方法。
谢谢!
您的all_frames
参数在清单中放错了位置,它应该是:
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"all_frames": true,
"js": ["main.js"]
}
],
我会通过将内容脚本注入iframes本身并在那里进行所有键绑定来解决这个问题。识别这些iframe的url,并向每个iframe注入单独的内容脚本。例如:
"content_scripts": [
{
"matches": ["http://gmail.com/*"],
"all_frames": false,
"js": ["main.js"]
},
{
"matches": ["http://gmail.com/iframe1.html"],
"all_frames": true,
"js": ["iframe1.js"]
},
{
"matches": ["http://gmail.com/iframe2.html"],
"all_frames": true,
"js": ["iframe2.js"]
}
],
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 谷歌脚本在第二次调用Gmail后返回null
- 滚动邮件's的类似gmail的body,带有使用java脚本的固定页脚
- 我想构建一个代码,在谷歌应用程序脚本中检查我在Gmail中导入的邮件,我该如何找到这个功能
- 谷歌脚本 - 将 Gmail 附件添加到文档和云端硬盘中的处理
- 由页面上的内容脚本创建的元素,导致Gmail,Facebook,stackoverflow等问题
- 在谷歌应用程序脚本gui中显示gmail消息
- 如果声明或/不做什么?Gmail谷歌应用程序脚本
- 我如何从我的Gmail帐户在我的Node.js脚本发送电子邮件
- 谷歌脚本的Gmail删除电子邮件与*仅*指定的标签
- Google Apps脚本-从gmail中提取数据到电子表格中
- 键盘绑定在Chrome扩展内容脚本与GMail
- 动态设置谷歌脚本时间驱动的计时器和太多的计时器错误在gmail
- 绑定谷歌脚本gmail
- 获得未读计数在发送文件夹使用谷歌应用程序脚本- GMail
- 从gmail抓取html表格,并使用谷歌应用程序脚本放入谷歌表格
- 代码注入到Gmail通过谷歌Chrome扩展-如何确保我的脚本注入时,它已完成加载
- Gmail脚本不会删除所有邮件-每次都会删除一些
- 帮助破解Gmail脚本
- 如何使用脚本将数据从 Gmail 导入电子表格