Chrome扩展程序:$ .ajax不是函数

时间:2018-11-11 20:00:45

标签: jquery google-chrome-extension

我构建了一个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 :(得分:0)

[编辑] [已测试] 我只添加:

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

我在我的background.js上调用了$ .ajax,看起来不错,它返回:

ƒ (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脚本。...