1
Chrome拡張機能を使用しているときに、拡張機能アイコンをクリックするとリンクが開きます。マニフェストは以下の通りです。Chrome拡張機能:browserActionボタンを一度クリックすると
問題は、データをフェッチしてリンクを開くと、同じページで再び実行されないことです。あなたは、あなたがbrowser action
をクリックし、次の時間が、それはの値のまま、l
をクリアすることを忘れ
{
"manifest_version": 2,
"name" : "xxx",
"description" : "Open links",
"version" : "1.1",
"background" : {
"scripts" : ["jquery.js","background.js"]
},
"content_scripts" : [{
"matches" : ["*://xxx/*"],
"js" : ["jquery.js","script.js"],
"run_at": "document_end"
}],
"icons":
{
"16": "icon16.png",
"48": "icon48.png"
},
"web_accessible_resources": [
"script.js",
"jquery.js",
"background.js"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"browser_action": {
"default_title": "xxx",
"default_icon": "icon16.png"
}
}
background.js
var l = 0;
var lnks = null;
chrome.browserAction.onClicked.addListener(function (tab)
{
chrome.tabs.query({active: true, currentWindow: true}, function(tabs)
{
chrome.tabs.sendMessage(tab.id, {method: "sendHTML"}, function(response)
{
var val = null;
if(response.data != null) {
lnks = parse_links(response.data);
val = setInterval(function(){
var total = lnks.length;
if (l < lnks.length) {
console.log(lnks[l]);
chrome.tabs.create({ url: lnks[l] });
l++;
} else {
clearInterval(val);
}
}, 5000);
}
}
);
});
});
function openTab(url) {
l++;
}
function parse_links(body) {
var jq = $(body);
var tble = jq.find("table");
var legit_links = [];
var link = null;
jq.find('table a').each(function() {
//val = setInterval(openTab,4000,lnks[i]);
link = $(this).attr('href').trim();
if(link.indexOf("?accountid") !== -1) {
$(this).click();
legit_links.push(link)
}
});
return legit_links;
}
script.js
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
// alert('Message from View:\n'
// + JSON.stringify(msg));
if (msg.method === 'sendHTML')
{
sendResponse({ data:$("body").html()});
}
});
あなたのご質問はありますか? –
@HaibaraAi愚かな私。更新された質問 – Volatil3