我想在内容脚本中获取当前的标签ID。但是它总是失败。我不确定我在做什么错事。
以下是其他主题的一些解决方案,但在我的扩展程序中不起作用:
代码1-content.js
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
alert("sent from tab.id=", sender.tab.id);
});
代码2-content.js
chrome.extension.sendRequest({
action: "WhatYouWant"
});
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
if (request.action) {
alert('The response is : ' + request.action);
}
});
background.js
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
if (request.action) {
// Make what you want
chrome.tabs.getSelected(null, function (tabs) {
chrome.tabs.sendRequest(tabs.id, {
action: "response"
});
});
}
});
manifest.json
...
"background": {
"scripts": ["background.js"],
"persistent": true
},
"content_scripts": [{
"all_frames": true,
"js": ["content.js"],
"matches": ["<all_urls>"],
"run_at": "document_end"
}],
"web_accessible_resources": [
"content.js"
],
...
注意:这不是重复的主题,其他问题中的解决方案对我不起作用。
答案 0 :(得分:0)
chrome.tabs.query()
函数返回制表符数组。
请参阅此文档: https://developer.chrome.com/extensions/tabs#method-query
当我尝试使用tabs.query()
函数时,回调函数将返回所有当前的tabS数组。
chrome.tabs.query( {}, function(cbResult){
console.log(cbResult);});
使用Google的文档以及上面的回调返回,您可以使用第一个query()参数找到正确的标签。
如果第一个参数为Null,则查询函数返回所有tabs数组。 您可以使用第一个参数来缩小候选选项卡。