расширение chrome - проблема с свойством "active" в chrome.tabs.create - PullRequest
0 голосов
/ 28 октября 2018

Я создаю новую вкладку и и сразу вставляю в нее код .Но проблема в том, что вводимый код не внедряется должным образом при использовании свойства active:true (которое мне нужно использовать) на tabs.create.

Вот код в popup.js:

chrome.tabs.create({url: "http://localhost:3000/", index: newTabId, active: false}, (newTab) => {
 chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    // check status so that it sends only one message, and not one for each status change
    if(changeInfo.status === "loading") {
        if (tab.id === newTab.id) {
            chrome.tabs.sendMessage(newTab.id, {message: "watch_video", videoData: selectedVideoData},
                function (resp) {
                    console.log("Resp",resp);
                    return true;
                }
            );
        } 
    }
 }); 
})

Вот проблемная строка: chrome.tabs.create({url: "http://localhost:3000/", index: newTabId, active: false}. Когда активным является false , код вводится, , но когда оно истинно , кажется, ничего не происходит.

inject.js:

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
    if (request.message === "watch_video") {
        console.log("inject soon")
        injectScript(request.videoData);
        sendResponse("watch_video script is to be injected in " + window.location.href)
    }
});

function injectScript(videoData) {
        console.log("injected")
        $(document).ready(function() {
            document.test = "ABCDE"
            const checkState = setInterval(() => {
                $(".bkg").css({ "background-color": "#ffffff"})
            }, 100)
        })
}

Здесь я попробовал что-то с setInterval(), оно не работает с , если active is true .Однако он работает с timeout.Но не работает без тайм-аута или интервала , когда active установлен в true .

Я мог бы использовать просто использовать timeout, но это не совсем такчисто, я бы предпочел понять, почему он ведет себя так, как он.Я использую реагирование между прочим.

Вот что сказано о active свойство :

Должна ли вкладка стать активной вкладкой в ​​окне.Не влияет на то, сфокусировано ли окно (см. Windows.update).По умолчанию true.
Источник: https://developer.chrome.com/extensions/tabs#method-create

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