将当前标签重定向到新网址

时间:2012-04-08 12:03:09

标签: jquery google-chrome-extension

我做了一个简单的扩展,并且我希望我的当前标签被重新定位到一个新的loaction,但这段代码对我不起作用:

function redirect() {
    console.log("HELLO"); 
    chrome.tabs.getSelected(null, function(tab) {
        var currentURL = tab.url;
        if(currentURL == "http://example.site/"){
            chrome.tabs.create("http://newlocation.site/",tab);
            alert("redirected");
        }
    });
}

chrome.browserAction.onClicked.addListener(redirect);

无论如何,我无法谷歌搜索选定标签的属性信息。有没有tab.url喜欢“命令”?我的意思是,tab.reload()..依此类推......

1 个答案:

答案 0 :(得分:1)

修复当前代码后,当前标签与给定网址匹配时,系统会创建一个新标签。

  1. chrome.tabs.create(object createInfo, function callback)是正确的签名。
  2. 注意:chrome.tabs.getSelected is deprecated赞成chrome.tabs.query

    chrome.tabs.create({url: "http://newlocation.site/"});
    
  3. 此代码按预期工作(后台脚本):

    function redirect() {
        console.log("Querying...");
        chrome.tabs.query({active: true}, function(tabArray) {
            var currentURL = tabArray[0].url;
            // For debugging purposes:
            console.log(currentURL);
            if (currentURL == "http://example.site/") {
                // The next line is the important change
                chrome.tabs.create({url: "http://newlocation.site/"});
                alert("redirected");
            }
        });
    }
    chrome.browserAction.onClicked.addListener(redirect);
    

    如果您不想创建新标签页,但更改当前标签页的网址,请使用update代替create

    chrome.tabs.update(tabArray[0].id, {url: "http://newlocation.site/"});
    

    文档