javascript - Chrome 扩展:在文档按钮上单击运行 browser_action
问题描述
我正在开发和扩展,一旦单击页面内的某个按钮,我就可以截取整个页面的屏幕截图。该代码是一个稍微修改过的版本:https ://github.com/mrcoles/full-page-screen-capture-chrome-extension
因此,如果用户单击扩展图标,它就会开始捕获。我需要能够通过单击页面内的按钮来执行相同的操作,该按钮已经在页面上。我添加了 background.js 和 content.js 并尝试了不同的方法......但没有成功。你知道怎么做吗?
{
"name": "", "version": "",
"manifest_version": 2, "description": "",
"browser_action": {
"default_icon": "icon48-999.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"storage",
"unlimitedStorage"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"content_scripts": [{
"run_at": "document_idle",
"matches": ["*://mydomain/app/*"],
"js": ["content.js"]
}]
}
目前我能够听到这样的点击事件:
内容.js
document.getElementById('top-nav').addEventListener('click', function () {
chrome.runtime.sendMessage({screencapture: true});
});
background.js ...但我仍然得到“未定义”输出...
chrome.runtime.onMessage.addListener(function () {
alert('background.js');
chrome.tabs.captureVisibleTab(null, {format: "png"}, function (data) {
alert(data);
});
});
解决方案
推荐阅读
- angular - 如何将子组件 ViewContainerRef 传递给 Angular 中的全局配置提供程序?
- excel - 没有找到具体要求的答案
- lua-5.3 - 为什么lua不尊重我的SIGINT信号
- spring-boot - Spring Boot - 如何在微服务之间进行通信?
- angular - 角度材料选择菜单未正确显示
- php - 通过按钮删除laravel中的一行
- visual-studio - Vsiual Studio for mac 错误消息 Xamarin.forms 任务与目标不匹配
- c++ - 如何访问结构中向量中的变量
- javascript - Rails 通过远程提交表单:Safari 上的 true(仅限 Safari)失败
- c# - 无法在 Docker for Windows 中运行容器:“系统找不到指定的文件”