2012-05-08 61 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://*/*" 

]