запустить контентскрипт для внешнего сайта chrome расширение - PullRequest
0 голосов
/ 27 марта 2020

Я хочу открыть новое окно для внешнего URL и запустить скрипт в этом окне при нажатии кнопки в моем расширении chrome.

Когда я использую URL на моей машине, например, http://localhost: 8000 Я могу увидеть тест console.log в новом окне. Однако, когда я использую URL для внешнего сайта, такого как http://google.com, я не вижу console.log. Вместо этого я получаю эту ошибку в своем расширении: «Unchecked runtime.lastError: вкладка была закрыта.».

Есть что-то, что мне не хватает?

Я считаю, что правильно установил свои разрешения, но я перечислил свой файл манифеста. json и js для кнопки ниже.

// manifest.json

{
    "name": "Automate Verifying Kangaroo Changes",
    "version": "1.0",
    "description": "Opens kangaroo along with llama configs in TST, STG, and PROD environments",
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "page_action": {
        "default_popup": "popup.html",
        "default_icon": {
            "16": "images/get_started16.png",
            "32": "images/get_started32.png",
            "48": "images/get_started48.png",
            "128": "images/get_started128.png"
        }
    },
    "icons": {
        "16": "images/get_started16.png",
        "32": "images/get_started32.png",
        "48": "images/get_started48.png",
        "128": "images/get_started128.png"
    },
    "options_page": "options.html",
    "permissions": [
        "cookies",
        "activeTab", 
        "declarativeContent", 
        "storage",
        "https://*/*",
        "http://*/*", 
        "<all_urls>"
    ],
    "manifest_version": 2
}


//popup.js

const WindowButton = document.querySelector('#WindowButton');

WindowButton.onclick = (e) => {
    const createData = {
        url: 'http://google.com',
    }
    chrome.windows.create(createData, (window) => {
        alert(window)
        chrome.tabs.query({
            windowId: window.id
        }, (tabs) => {
            const code = 'console.log("This should appear in the new window console")'
            chrome.tabs.executeScript(
                tabs[0].id,
                { code }
            );
        })
    })
}

...