我正在编写一个 Chrome 扩展程序,我想在我的 background.js 中调用一个函数。
这是功能:
function getUrlVars(url) {
var vars = {};
var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
if(vars[key]){
if(vars[key] instanceof Array)
vars[key].push(value);
else
vars[key] = [vars[key], value];
}else
vars[key] = value;
});
return vars;
}
它返回 url 的参数。我把这个函数放在background.js中,但是当我调用它时,它不起作用。我在这里调用函数:
chrome.webRequest.onBeforeRequest.addListener(function(details){
chrome.tabs.get(details.tabId, function (tab) {
source=getUrlVars(details.url)[iapisource];
id=getUrlVars(details.url)[iapiid];
redirectUrl=tab.url+"?iapisource="+source+"&iapiid="+id;
});
return {cancel : true , redirectUrl : redirectUrl};
},
// block requests matching this url
{urls: ["*://*/*iapisource*iapiid*"]},["blocking"]);
在这里,我在请求之前获取 URL,并将新 URL 的参数附加到它上面。
我必须把函数放在哪里,我该如何调用它?