当我点击popup.html上的按钮时,我正在尝试构建一个运行以下内容的chrome扩展程序:
以下代码仅成功执行我想要的当前选项卡。当我点击“btn2'”时,我希望扩展程序为所有标签执行此操作。
我该如何重复?有一个for循环?谢谢!
document.addEventListener('DOMContentLoaded', function (){
document.getElementById('btn2').addEventListener('click', printurl)
});
printurl = function(){
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function(tabs) {
// and use that tab to fill in out title and url
var query = tabs[0].url;
var companyId = query.slice(33, 41);
var companyId2 = companyId.replace( /\D/g, '');
saeurl = 'https://www.linkedin.com/sales/search?pivotType=EMPLOYEE&pivotId=' + companyId2;
chrome.tabs.create({url: saeurl, selected:false})
})
}
答案 0 :(得分:0)
如果我已经理解了您要正确执行的操作,则需要进行一些更改。首先,如果您想要所有标签,那么您不想查询active
或lastFocusedWindow
。
修复该问题后,您应该获得所有标签,此时您需要为tabs
中的每个标签完成逻辑。
chrome.tabs.query({}, function(tabs) {
for(var i = 0; i < tabs.length; i++) {
// and use that tab to fill in out title and url
var query = tabs[i].url;
var companyId = query.slice(33, 41);
var companyId2 = companyId.replace( /\D/g, '');
saeurl = 'https://www.linkedin.com/sales/search?pivotType=EMPLOYEE&pivotId=' + companyId2;
chrome.tabs.create({url: saeurl, selected:false})
}
})
还有必要考虑用于从URL中提取公司ID的逻辑。您当前的逻辑依赖于ID的长度,ID可能会发生变化。看一下this gist,它显示了几种不同的解析URI方式。