Методы получения идентификатора текущей вкладки в скрипте содержимого - расширение Chrome - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь получить идентификатор текущей вкладки в скрипте контента. Но это не удается все время. Я не уверен, что я делаю ложно.

Вот некоторые решения из других тем, но они не работают в моем расширении:

КОД 1 - content.js

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    alert("sent from tab.id=", sender.tab.id);
});

CODE 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"
],
...

Примечание: это не дублирующая тема, решения по другим вопросам у меня не работают.

1 Ответ

0 голосов
/ 17 октября 2018

chrome.tabs.query() функция возвращает вкладки Array.

см. Этот документ: https://developer.chrome.com/extensions/tabs#method-query

когда я попробовал tabs.query() функцию, функция обратного вызова возвращает весь текущий массив tabS.

chrome.tabs.query( {}, function(cbResult){
  console.log(cbResult);});

с документом Google и возвратом вызовов выше, вы можете обнаружить, что на правильной вкладке используется аргумент first query ().

если первым аргументом является Null, то функция запроса возвращает массив всех вкладок. Вы можете сузить вкладки кандидатов, используя первый аргумент.

Скриншот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...