Firefox/Chrome 扩展:如何在创建新标签时打开 link?
Firefox/Chrome extension: how to open link when new tab is created?
正在处理 Firefox WebExtension。
下面的代码在我打开一个新标签时有效,但当我点击 link 时它正在更新任何当前标签。
如何使用 query
到 select 仅 新标签页?
还有其他方法吗?
/* Load Google when creates a new tab. */
function openMyPage() {
//console.log("injecting");
chrome.tabs.query({
'currentWindow': true,
'active': true
// This will match all tabs to the pattern we specified
}, function(tab) {
// Go through all tabs that match the URL pattern
for (var i = 0; i < tab.length; i++){
// Update those tabs to point to the new URL
chrome.tabs.update(
tab[i].id, {
'url': 'http://google.com'
}
);
}
});
};
//Add openMyPage() as a listener when new tabs are created
chrome.tabs.onCreated.addListener(openMyPage);
tabs.onCreated
回调提供了一个参数,它是一个 Tab
对象。你不应该查询得到它,你已经有了它。
function openMyPage(tab) {
chrome.tabs.update(
tab.id, {
'url': 'http://google.com'
}
);
};
请注意,这将不分青红皂白地针对新标签页 - 即使是那些用户通过 "open link in new tab" 打开的标签页。如果这不是您想要的,您将需要额外的逻辑来检测它是一个新标签页。
有了 "tabs"
权限,tab
对象将填充 属性 url
。您可以使用它来过滤新标签。在 Chrome 中应该是 chrome://newtab/
,在 Firefox 中应该是(我还没有测试过)about:home
或 about:newtab
.
正在处理 Firefox WebExtension。
下面的代码在我打开一个新标签时有效,但当我点击 link 时它正在更新任何当前标签。
如何使用 query
到 select 仅 新标签页?
还有其他方法吗?
/* Load Google when creates a new tab. */
function openMyPage() {
//console.log("injecting");
chrome.tabs.query({
'currentWindow': true,
'active': true
// This will match all tabs to the pattern we specified
}, function(tab) {
// Go through all tabs that match the URL pattern
for (var i = 0; i < tab.length; i++){
// Update those tabs to point to the new URL
chrome.tabs.update(
tab[i].id, {
'url': 'http://google.com'
}
);
}
});
};
//Add openMyPage() as a listener when new tabs are created
chrome.tabs.onCreated.addListener(openMyPage);
tabs.onCreated
回调提供了一个参数,它是一个 Tab
对象。你不应该查询得到它,你已经有了它。
function openMyPage(tab) {
chrome.tabs.update(
tab.id, {
'url': 'http://google.com'
}
);
};
请注意,这将不分青红皂白地针对新标签页 - 即使是那些用户通过 "open link in new tab" 打开的标签页。如果这不是您想要的,您将需要额外的逻辑来检测它是一个新标签页。
有了 "tabs"
权限,tab
对象将填充 属性 url
。您可以使用它来过滤新标签。在 Chrome 中应该是 chrome://newtab/
,在 Firefox 中应该是(我还没有测试过)about:home
或 about:newtab
.