Расширение Chrome: $ .ajax не является функцией - PullRequest
0 голосов
/ 11 ноября 2018

Я создал расширение chrome, которое будет опираться на вызовы ajax из фонового скрипта, но по какой-то причине функция ajax не регистрируется как функция во время выполнения моего вызова. Сначала я подумал, что это проблема моего манифеста, но понял, что будет выдано сообщение о том, что $ не определено, если jquery не вводится для использования. Мне интересно, если это может быть какой-то выпуск ценных бумаг? Я бы подумал, что если бы это было так, функция все равно выполнялась бы, но выдавала ошибку, когда произошел транспорт, чтобы сказать недопустимый URL. Я действительно в растерянности здесь. Перед попыткой $.ajax() я использовал $.getScript(), но выдает ту же ошибку, что getScript не является функцией.

В моем manifest.json у меня есть это:

"background": {
    "scripts": ["vendor/jquery.js", "background.js"]
},

И это в моем background.js:

chrome.runtime.onInstalled.addListener(function(){
   ...
   var Core = {
      ...
      load: function(name){
         var src = EXTERNAL+name+".js";
         $.ajax({
            url: src,
            type: "script",
            success: function(result) {
               console.log(result);
            }
         });
      },
   };

   function initialize(){
      ...
      Core.load(name);
   }

   chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){
      var request = message.data;
      var type = request.type;
      switch(type){
         case 'popup_handshake':
            sendResponse({data:{domain: domain, seed: seed}});
         break;

         case 'seed':
            domain = request.domain;
            uW = request.uW;
            seed = uW.seed;
            cm = uW.cm;

            delete uW.seed;
            delete uW.cm;

            initialize();
         break;
      }
   });
});

В чем может быть проблема?

1 Ответ

0 голосов
/ 12 ноября 2018

[Редактировать] [Проверено] Я просто добавляю:

"background": {
    "scripts": ["jquery.js","background.js"]
    },

Я вызвал $ .ajax на моем background.js, и он выглядит нормально, он возвращает:

ƒ (t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"… 

Посмотрите на ваш скрипт jquery.js ....

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