我在Windows 10 v1703上使用Edge,构建15063.296。 文档(https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-apis)声明API tabs.captureVisibleTab可用。
但是当我在后台脚本中使用它时,我收到以下错误:
边缘不支持API调用'tabs.captureVisibleTab'。
代码是:
browser.tabs.captureVisibleTab(currentTab.windowId, {format: "png"}, function (data) {});
我错过了什么吗?
这是我的清单文件(从Chrome移植):
{
"author": "Evgeny Suslikov",
"background": {
"page": "background.html",
"persistent": true
},
"browser_action": {
"default_icon": {
"19": "images/sss_19.png"
},
"default_title": "FireShot - Capture page",
"default_popup": "fsPopup.html"
},
"commands": {
"last-used-action": {
"suggested_key": {
"default": "Ctrl+Shift+Y",
"mac": "Command+Shift+Y"
},
"description": "__MSG_options_label_last_action_hotkey__"
}
},
"default_locale": "en",
"description": "__MSG_application_description__",
"icons": {
"16": "images/sss_16.png",
"32": "images/sss_32.png",
"48": "images/sss_48.png",
"128": "images/sss_128.png"
},
"Key": "B5SSrXXpDZAoT8SQ4vAzNeTQ1tBC2Z24nx+hHZXfykmVYfMy5aOwPkf0Hbt7SXlKbprwV0GwrYgCwIDAQAB",
"manifest_version": 2,
"name": "__MSG_application_title__",
"offline_enabled": true,
"optional_permissions": [
"tabs",
"<all_urls>",
"downloads"
],
"options_page": "fsOptions.html",
"permissions": [
"activeTab",
"tabs",
"contextMenus",
"nativeMessaging"
],
"short_name": "FireShot",
"version": "0.98.92",
"web_accessible_resources": [
"images/*.gif"
],
"-ms-preload": {
"backgroundScript": "backgroundScriptsAPIBridge.js",
"contentScript": "contentScriptsAPIBridge.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["scripts/fsUtils.js", "scripts/fsSelection.js", "scripts/fsLinks.js", "scripts/fsContent.js"]
}]
}
在我的fsBackground.js页面中,我打电话:
browser.tabs.captureVisibleTab(windowId, {format: "png"}, function (data) {});
我收到以下错误:click to see screenshot...
答案 0 :(得分:1)
支持该功能starting from Edge 15。在以前的版本中,它仍然不受支持,即使文档说的不同。
确保下载最新版本的Microsoft Edge Extension Toolkit并使用它重新生成桥文件。
您可以查看生成的backgroundScriptsAPIBridge.js文件以查看更改内容。
以前的版本(不支持):
captureVisibleTab(windowId, options, callback) {
bridgeLog.LogUnavailbleApi("tabs.captureVisibleTab");
}
新版本(支持):
captureVisibleTab(windowId, options, callback) {
bridgeLog.DoActionAndLog(() => {
myBrowser.tabs.captureVisibleTab.apply(null, arguments);
}, "tabs.captureVisibleTab");
}