avi*_*jbi 2 javascript google-chrome google-chrome-extension
我在这里看到了很多答案,但没有一个是我要找的。我想从 chrome 扩展程序中为我第一次看到的屏幕截取屏幕截图,而无需滚动页面。并“警告”创建的文件 base64 路径。
我拥有所有正确的权限:
"permissions": [
"activeTab",
"tabs" ,
"storage",
"unlimitedStorage",
"browsingData",
"notifications",
"http://*/*",
"https://*/*",
"file://*/*",
"background" // added after i got the answer
],
"background": { // added after i got the answer
"scripts": [
"js/background.js"
]
},
Run Code Online (Sandbox Code Playgroud)
在我的 manifest.json
我也有代码:
$(document).ready(function() {
alert("1");
chrome.tabs.captureVisibleTab(null, {}, function (image) {
alert("2");
});
});
Run Code Online (Sandbox Code Playgroud)
我一直得到 1,但我从来没有得到 2,我不知道为什么。请帮忙..
谢谢 ..
更新
这是缺失的部分(background.js)
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.tabs.captureVisibleTab(
null,
{},
function(dataUrl){
sendResponse({imgSrc:dataUrl});
}); //remember that captureVisibleTab() is a statement
return true;
}
);
Run Code Online (Sandbox Code Playgroud)
进而 :
chrome.tabs.captureVisibleTab(null, {}, function (image) {
// alert("2");
alert(response.imgSrc);
});
Run Code Online (Sandbox Code Playgroud)
您不能在内容脚本中调用扩展 API。如果您真的想在内容脚本中触发此功能,请尝试使用消息传递。
请注意,tabs.captureVisibleTab() 的权限要求自 chrome rev.246766 起已更新。
扩展需要有“< all_urls >”权限,或者被授予“activeTab”权限才能使用tabs.captureVisibleTab()。
开发人员文档没有提到它。
清单文件
"permissions": [
"activeTab",
"tabs" ,
"storage",
"unlimitedStorage",
"browsingData",
"notifications",
"http://*/*",
"https://*/*",
"file://*/*",
"<all_urls>"
]
Run Code Online (Sandbox Code Playgroud)
尝试在后台页面中执行以下代码,屏幕截图将按预期工作。
chrome.tabs.captureVisibleTab(null,{},function(dataUri){
console.log(dataUri);
});
Run Code Online (Sandbox Code Playgroud)
截屏
归档时间: |
|
查看次数: |
3266 次 |
最近记录: |