chrome.tabs API为我们提供了一种方法来监听每个标签的网址更改。 https://developer.chrome.com/extensions/tabs#event-onUpdated
我可以像这样添加一个监听器:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
// changeInfo.url gives the updated url if it's changed
// tab.url gives the current url for the tab
});
我想做的是检测域是否发生变化并执行某些操作。
例如,如果网址从https://google.com/abc更改为https://google.com,则会执行某些操作。
有谁知道最好的方法吗?
答案 0 :(得分:3)
看起来没有好办法从chrome.tabs API获取以前的网址。 我目前正在做的是使用一个hashmap来跟踪每个tabId的前一个url,如下所示:
vec3 vn;
vec3 vna[object.vertexNumber];
for(int i = 0; i < object.vertexNumber; i++)
{
vec3 tempvn = {0.0, 0.0, 0.0};
vn = object.points[i];
for(int j = 0; j < object.vertexNumber; j++)
{
if(vn.x == object.points[j].x && vn.y == object.points[j].y && vn.z == object.points[j].z)
{
tempvn = plusequalvec3(tempvn, object.normals[j]);
}
}
vna[i] = normalizevec3(tempvn);
}
答案 1 :(得分:1)
试试这个:
var previousUrl = "";
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
//Your code here
});
chrome.webNavigation.onBeforeNavigate.addListener(function(object){
chrome.tabs.get(object.tabId, function(tab){ previousUrl = tab.url;});
});
请注意,您需要&#34; webNavigation&#34;列在manifest.json
中