Chrome浏览器屏幕截图仅在点击扩展程序时才有效
问题描述:
所以我想写一些代码,当我的网站上按下按钮时,它可以让我截取页面。代码有效,但唯一的问题是我必须先点击Chrome扩展,然后点击按钮才能截取屏幕截图。我想这是因为活动选项卡没有被调用。有任何想法吗?Chrome浏览器屏幕截图仅在点击扩展程序时才有效
这是错误: 运行tabs.captureVisibleTab时未经检查的runtime.lastError:'activeTab'权限未生效,因为此扩展未被调用。
manifest.json的
"permissions": [
"tabs",
"*://google.com/*"
],
background.js
var id = 100;
// Listen for a click on the camera icon. On that click, take a screenshot.
function takeScreenshot() {
chrome.tabs.captureVisibleTab(null, function(screenshotUrl) {
.....
}
chrome.extension.onRequest.addListener(function(request, sender) {
takeScreenshot();
});
contentscript1.js
contentScriptMessage = "Take a screenshot";
document.addEventListener("hello", function(data) { //When overlay is clicked
chrome.extension.sendRequest({message: contentScriptMessage}); //call background script
})
和I P屁股从网页中的消息单击图像时(调用函数围棋()),像这样:
var go = function() {
var event = document.createEvent('Event');
event.initEvent('hello');
document.dispatchEvent(event);
}
答
Unchecked runtime.lastError while running tabs.captureVisibleTab: The 'activeTab' permission is not in effect because this extension has not been invoked.
这个错误意味着你的分机没有足够的权限来访问当前选项卡,如果有没有明确的用户手势(就像点击你的扩展)。我必须说这里的错误非常具有误导性,因为您的清单中没有activeTab
权限。
Docs提及您need specifically the "<all_urls>"
permission为了在没有显式调用的情况下使用此函数。请参阅this bug以获取该要求的解释。