Выполнение расширения Chrome onclick вместо загрузки страницы - программирование
Подтвердить что ты не робот

Выполнение расширения Chrome onclick вместо загрузки страницы

Я создал расширение Chrome, которое работает как ожидалось, за исключением того, что оно выполняется только при загрузке страницы, соответствующей условиям манифеста. Я пробовал несколько часов, чтобы выполнить его, нажав на значок расширения безрезультатно.

Ближайший я смог, что я хочу, это то, что я смог сделать значок расширения, чтобы запустить код, но затем он не запускает его на загруженной странице. Он запускает его на пространстве расширения вместо страницы DOM.

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

Вот мой код: manifest.json



    {
        "name": "Get Response URL",
        "version": "1.0",
        "manifest_version": 2,
        "browser_action": {
        "default_icon": "mkto_icon.png",
        "name": "Click to get URL"
        },
        "content_scripts": [{
            "js": ["contentscript.js"],
            "matches": ["http://mydomain.com/*"]
        }]
    }

contentscript.js



    if (document.getElementsByName("returnURL")){
        alert("\nThe Response URL on this form is:\n\n" + document.getElementsByName("returnURL")[0].value);
    }

4b9b3361

Ответ 1

Как я вижу, вы хотите запустить код, когда

  • Пользователь нажал кнопку "Действие браузера ICON" и
  • URL-адрес шаблона соответствует

Если это так, вы используете  Фоновые страницы в сочетании с API вкладок.

Демонстрация

Это пример демонстрации вашего варианта использования, и вы можете поместить весь свой код и назначить разрешения для всех URL-адресов соответствия.

manifest.json

Зарегистрированная справочная страница, действие браузера и разрешения для целевых страниц.

{
        "name": "Get Response URL",
        "version": "1.0",
        "manifest_version": 2,
        "browser_action": {
        "name": "Click to get URL"
        },
        "background":{
            "scripts":["background.js"]
        },
        "permissions":["https://www.google.co.in/*"] //Put All your URL here
 }

background.js

Поместите весь свой целевой URL-адрес в ряд условий, если здесь

chrome.browserAction.onClicked.addListener(function (tab) { //Fired when User Clicks ICON
    if (tab.url.indexOf("https://www.google.co.in/") != -1) { // Inspect whether the place where user clicked matches with our list of URL
        chrome.tabs.executeScript(tab.id, {
            "file": "contentscript.js"
        }, function () { // Execute your code
            console.log("Script Executed .. "); // Notification on Completion
        });
    }
});

contentscript.js

alert("Code Executed ... ");

Выход

Когда вы перейдете к https://www.google.co.in/ и после нажатия кнопки браузера вы увидите сообщение Alert на странице.

Ссылки

Ответ 2

используйте API-интерфейс browserAction, см. здесь

события onClick могут вам помочь. также см. эти примеры из Google: