Отладка внедренных скриптов контента - PullRequest
3 голосов
/ 07 января 2012

У меня много кода, который я хочу запустить, только когда пользователь щелкает значок расширения.Я бы предпочел , а не , чтобы он запускался для каждой открытой вкладки.Таким образом, использование записи content_scripts в файле манифеста - не лучший вариант.Однако я не смог увидеть сценарии содержимого, отображаемые в списке сценариев в инструментах разработчика, когда я программно внедряю сценарии.Сейчас я хорошо работаю со сценариями контента, но в какой-то момент я бы хотел этого избежать.

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

В коде следующее работает просто замечательно (в манифесте):

 {
   // ...
   "content_scripts": [{
      "matches": ["<all_urls>"],
      "css": ["style/content.css"],
      "js": [
       "closure/goog/base.js",
       "closure/goog/deps.js",
       "util.js",
       "AddressRE.js",
       // ...
       "makeRequests.js"
     ]
   }]
 }    

Выполнение следующих действий после onClick не выполняется:

 function executeNextScript(tabId, files, callback) {
     chrome.tabs.executeScript(tabId, {
         file: files.pop()
     }, function () {
         if (files.length)
             executeNextScript(tabId, files, callback);
         else
             callback();
     });
 }    


 function executeScripts(tabId, callback) {
     var files = [
         "closure/goog/base.js",
         "closure/goog/deps.js",
         "util.js",
         // ...
         "makeRequests.js"
     ];
     executeNextScript(tabId, files.reverse(), callback);
 }

Ответы [ 2 ]

2 голосов
/ 07 января 2012

Вы можете использовать ключевое слово JavaScript debugger для установки точек останова в вашем коде.

1 голос
/ 07 декабря 2013

Я добавляю //@ sourceURL=myscript.js к любому внедренному сценарию, который добавляет его в список источников после того, как он был внедрен

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