您的代码几乎没有问题
a)您在后台页面而不是您正在浏览的选项卡中
b) $.attr() 不被后台页面识别。
c) 您对正在更新的选项卡没有权限。
以下示例可以实现您的功能。
参考:
a)清单文件和模式
b) tabs.query() :用于在安装前获取所有选项卡
c) tabs.onUpdated.addListener :用于在安装后获取新选项卡
d) chrome.tabs.update :用于更改所有选项卡 URL。
示范
清单.json
确保所有权限都可用于清单
{
"name": "URL Change",
"version": "0.0.1",
"manifest_version": 2,
"description": "This demonstrates how chrome extension Changes URL",
"background":{
"scripts":["background.js"]
},
"permissions": ["tabs","http://www.youtube.com/*"]
}
背景.js
这可确保使用http://www.youtube.com/安装后的所有现有标签和所有新创建的标签都更新为http://www.youtube.com/feed/subscriptions/u
//Take tabId as input and change its URL
var changeURL = function (tabId) {
//Update its URL
chrome.tabs.update(tabId, {
"url": "http://www.youtube.com/feed/subscriptions/u"
}, function (tab) {
//Notification for success
console.log("Tab Updated");
});
}
//Query All tabs with URL's http://www.youtube.com/ when extension is installed for first time
chrome.tabs.query({
"url": "http://www.youtube.com/"
}, function (tabs) {
//For every tab change URL by Passing Id
for (tab in tabs) {
changeURL(tabs[tab].id);
}
});
//When ever a new tab is created this changes URL
chrome.tabs.onUpdated.addListener(function (tabId, info, tab) {
//Fetch a tab where URL is http://www.youtube.com/ and is not loaded yet
if (info.status == "loading" && info.url == "http://www.youtube.com/") {
//Change URL by passing Id of tab
changeURL(tabId);
}
});
输出:
如果您需要更多信息,请与我们联系。