从chrome.tabs.onUpdated获取以前的网址

时间:2015-11-18 02:29:20

标签: javascript google-chrome google-chrome-extension

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,则会执行某些操作。

有谁知道最好的方法吗?

2 个答案:

答案 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