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 のパラメーターを追加します。
関数をどこに置く必要があり、どのように呼び出すことができますか?