2012-05-08 62 views
1

大家晚上好,Chrome标签页URL重定向

我开始一个Chrome扩展,并在一定的情况下,我需要重定向用户的标签(改变URL)。

这里是我的代码

function changeTabURL(tabName,addr) { 
var tabId=parseInt(localStorage.getItem(tabName)); //fetch tab ID 

chrome.tabs.update(tabId,{"url":addr}); 

} 

现在这里发生了什么,该浏览器:// ...的事情被前置到我的网址! 说我尝试的标签重定向到“http://www.google.com”,这是发生了什么:

“未在此网址找到网页地址:铬扩展:// oihdngeahhchnacpilhnmaknneooabbc/HTTP ://www.google.com“

我不能动摇这个!我已经尝试重置网址第一

chrome.tabs.get(tabId,function(tab) { 
tab.url=''; 
alert(tab.url); 
}); 
chrome.tabs.update(tabId,{"url":addr}); 
} 

没有我做的这个动摇。

有什么想法?

+0

我想你已经在内容脚本这里提到的代码。我对重定向没有任何问题。我首先尝试了“www.google.com”,这给了我一个像你在这里提到的错误。但之后我将URL编辑为'http:// www.google.com',并在从chrome设置重新加载扩展程序后再次尝试。这对我来说工作得很好。 –

+0

嘿约瑟夫,谢谢!我不知道如何和为什么,但正如你所说,当我确定地址有http://问题解决了... –

回答

2

由于您已经在使用chrome.tabs API,因此您可能希望尝试使用chrome.tabs.query查找活动选项卡并以此方式获取它的id。这里有一个例子:

queryInfo = new Object(); 
queryInfo.active = true; 
chrome.tabs.query(queryInfo, function(result) { 
    var activeTab = result[1].id; 
    updateProperties = new Object(); 
    updateProperties.url = 'YOUR_URL_HERE'; 
    chrome.tabs.update(activeTab, updateProperties, function() { 
      // Anything else you want to do after the tab has been updated. 
    }); 
}); 
0

有你设置的权限在manifest.json的是这样的:

"permissions": [ 
"notifications", 
"contextMenus", 
"tabs", 
"contentSettings", 
"http://*/*", 
"https://*/*" 

]