Мы сделали слушатель в background.js в расширении chrome, но он не запускается - PullRequest
0 голосов
/ 31 октября 2018

Я создаю простое расширение Chrome, которое не позволяет мне подключаться к домену Google. Но в фоновом режиме javascript продолжал работать и создал background.js и обновленного слушателя. Но это не работает. Зачем? Когда я нажал на иконку в Main.js, все было в порядке.

manifest.json

{
      "manifest_version": 2,

      "name": "불법 토토사이트 감지기",
      "description": "불법 토토사이트를 감지해주는 사이트입니다.",
      "version": "1.0",
      "content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'",
      "background": {
        "scripts": ["background.js"],
        "persistent" : false
      },
      "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
      },
      "permissions": [
        "tabs",
        "activeTab"
      ]
  }

background.js

chrome.tabs.onUpdated.addListener(function () {
                var domain = document.URL;
                var google = 'https://www.google.co.kr/';

                if (domain == google) {
                    chrome.tabs.executeScript({
                        code: 'alert("불법 사이트입니다"); history.go(-1);'
                    })
                }


                // $.ajax({
                //     type: 'POST',
                //     url: 'http://207.148.88.110:3000/',
                //     data: {
                //         url: domain
                //     },
                //     dataType: 'json',
                //     success: function(Object){
                //         if (Object.success == '통과') {
                //             document.getElementById('url').innerHTML = Object.success;
                //         }
                //         else {
                //             chrome.tabs.executeScript({
                //                 code: 'alert("불법 사이트입니다"); history.go(-1);'
                //             })
                //         }
                //     },
                //     error: function(error) {
                //         console.log(error);
                //     }
                // })




        })

main.js

chrome.tabs.executeScript({
            code: 'document.URL;'
        }, function (domain) {

            var google = 'https://www.google.co.kr/';

            if (domain == google) {
                chrome.tabs.executeScript({
                    code: 'alert("불법 사이트입니다"); history.go(-1);'
                })
            }




            $.ajax({
                type: 'POST',
                url: 'http://207.148.88.110:3000/',
                data: {
                    url: domain
                },
                dataType: 'json',
                success: function(Object){
                    if (Object.success == '통과') {
                        document.getElementById('url').innerHTML = Object.success;
                    }
                    else {
                        chrome.tabs.executeScript({
                            code: 'alert("불법 사이트입니다"); history.go(-1);'
                        })
                    }
                },
                error: function(error) {
                    console.log(error);
                }
            })


        })

1 Ответ

0 голосов
/ 02 ноября 2018
chrome.tabs.onUpdated.addListener(function () {
  var domain = document.URL;
  /* ... */

На данный момент в вашем коде document это фоновая страница . Таким образом, URL-адрес будет выглядеть как chrome-extension://your-extension-id/_generated_background_page.html и никогда не будет совпадать.

Вам необходимо проверить детали, которые предоставляются onUpdated слушателям :

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
  var domain = changeInfo.url; // Or tab.url
  /* ... */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...