1

各位晚上好 ,

我正在开始一个 chrome 扩展,在某些情况下我需要重定向(更改 URL)用户的选项卡。

这是我的代码

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

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

}

现在这就是正在发生的事情,Chrome:// ... 东西被添加到我的 URL 之前!假设我尝试将标签重定向到“http://www.google.com”,这就是发生的情况:

“没有找到该网址的网页:chrome-extension://oihdngeahhchnacpilhnmaknneooabbc/http://www.google.com”

我不能动摇这个!我试过先重置网址

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

我所做的一切都不会动摇这一点。

有什么想法吗?

4

2 回答 2

3

由于您已经在使用 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.
     });
});
于 2012-05-11T06:32:29.847 回答
0

你有没有像这样在你的 manifest.json 中设置权限:

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

]

于 2012-10-24T16:56:55.503 回答