我构建了一个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;
}
});
});
可能是什么问题?
答案 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脚本。...