我正在尝试获取当前域,并在Chrome扩展程序的每个标签更改时提醒它。例如,每当用户导航另一个页面时,它将alert("your current path is: " + location.hostname);
但它不起作用。我做错了什么?我试过这段代码:
chrome.tabs.onUpdated.addListener(
alert(location.hostname);
);
答案 0 :(得分:1)
这不起作用,因为后台页面的location.hostname
是chrome://扩展程序网址。
添加
"permissions": [
"tabs"
]
然后将您的代码更改为:
chrome.tabs.onUpdated.addListener(function(){
chrome.tabs.getSelected(null,function(tab) {//get current tab without any selectors
alert(tab.url); //get tab value 'url'
});
});
答案 1 :(得分:0)
将主机名请求发送到内容脚本
在background.js中:
User.update(
{ _id: Mongoose.Types.ObjectId(userId), 'projects.name': data.project },
{ $push: { 'projects.$.tasks': data.task } },
(err, data) => {
if (err) { throw err; }
return reply('success');
}
);
ContentScript.js中的:
// record active tab id when user switch tab every time
// activeTabId is global variable
var activeTabId = undefined;
chrome.tabs.onActivated.addListener(
function(activeInfo){
activeTabId = activeInfo.tabId;
}
);
// send hostname request to content script when user update active tab
chrome.tabs.onUpdated.addListener(
function(changeInfo,tab){
// check if the updating tab is active tab
if(tab.id === activeTabId){
// send hostname request
chrome.tabs.sendMessage(activeTabId,{alertHostName:true});
}
}
);