如何从javascript调用google chrome屏幕截图扩展?
我有一个google chrome扩展,它可以生成一个网页的活动选项卡的屏幕截图并下载。启用后,它在chrome上运行良好。我想在我的网页上点击一个按钮来生成和下载相同的屏幕截图。如何从网页中调用该分机? 我的扩展代码如下: manifest.JSON content.js如何从javascript调用google chrome屏幕截图扩展?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个google chrome扩展,它可以生成一个网页的活动选项卡的屏幕截图并下载。启用后,它在chrome上运行良好。我想在我的网页上点击一个按钮来生成和下载相同的屏幕截图。如何从网页中调用该分机? 我的扩展代码如下: manifest.JSON content.js 请提供帮助。或者从您的网页发送CustomEvent并在内容脚本中收听。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabhar
请提供帮助。或者从您的网页发送CustomEvent并在内容脚本中收听。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabharadia,如果你已经试过了,那么你需要在问题中说明你已经试过了,并在问题中包含不起作用的代码。现在,这个问题似乎与wOxxOm链接的问题是重复的,因为你问的是同样的问题,问题的解决方式也是一样的。请明确说明:你想从任何网站激活截图扩展,还是只从你的网站激活截图扩展。您是否打算让网站呼叫您的分机,或者您的分机正在监听用户单击网站中的按钮?这个按钮是已经在网站上的还是扩展添加的?或者从你的网页发送一个CustomEvent并在内容脚本中收听它。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabharadia,如果你已经试过了,那么你需要在问题中说明你已经试过了,并在问题中包含不起作用的代码。现在,这个问题似乎与wOxxOm链接的问题是重复的,因为你问的是同样的问题,问题的解决方式也是一样的。请明确说明:你想从任何网站激活截图扩展,还是只从你的网站激活截图扩展。您是否打算让网站呼叫您的分机,或者您的分机正在监听用户单击网站中的按钮?这个按钮是已经在网站上的还是扩展添加的?
{
"name": "Screenshot Extension",
"version": "1.0",
"description": "A simple screenshot extension",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches" : ["<all_urls>"],
"js": ["content.js"]
}
],
"browser_action": {
"default_icon": "camera.png",
"default_title": "Screenshot"
},
"permissions": ["tabs", "<all_urls>", "activeTab"],
"manifest_version": 2
}
var screenshot = {
content : document.createElement("canvas"),
data : '',
init : function() {
this.initEvents();
},
saveScreenshot : function() {
var image = new Image();
image.onload = function() {
var canvas = screenshot.content;
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
// save the image
var link = document.createElement('a');
link.download = "download.png";
link.href = screenshot.content.toDataURL();
link.click();
screenshot.data = '';
};
image.src = screenshot.data;
},
initEvents : function() {
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.captureVisibleTab(null, {
format : "png",
quality : 100
}, function(data) {
screenshot.data = data;
// send an alert message to webpage
chrome.tabs.query({
active : true,
currentWindow : true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {ready : "ready"},
function(response) {
screenshot.saveScreenshot();
});
});
});
});
}
};
screenshot.init();
chrome.extension.onMessage.addListener(function(msg, sender,
sendResponse) {
if (msg.ready === "ready") {
if (confirm('Do you want to capture the screen?')) {
sendResponse({download : "download"});
}
}
});