MS Edge 垂直标签:滚动到活动标签?
MS Edge vertical tabs: scroll to active tab?
在具有大量垂直标签的 MS Edge 中,当新创建的标签移动到顶部附近时,它会将标签滚动到底部,使活动(新)标签看不见。
有没有办法阻止选项卡滚动或至少滚动到活动选项卡?
background.js
/* listen for new tab event */
chrome.tabs.onCreated.addListener( tab =>
{
/* move tab to the top */
chrome.tabs.move(tab.id, {index: 0});
});
manifest.json
{
"background": {
"persistent": true,
"scripts": [ "background.js" ]
},
"description": "open new tabs as first tab",
"manifest_version": 2,
"name": "test",
"permissions": [ "tabs" ],
"version": "0.0.1"
}
对于 MS Edge 垂直标签布局,一个可能的解决方案可能是以这种方式固定标签。
chrome.tabs.onCreated.addListener( tab => {
chrome.tabs.move(tab.id, {index: 0}, t => {
chrome.tabs.update(t.id, {pinned: true})
})
});
编辑:固定选项卡会将其移动到顶部位置S,因此可能不需要chrome.tab.move
到目前为止,我能找到的唯一解决方案是跟踪前一个活动标签,当新标签移动时,激活前一个标签,等待 200 毫秒并激活新标签(延迟小于 200 毫秒似乎非常不可靠)。它有效,但不幸的是它会明显滚动选项卡。
var lastActiveTab = {};
/* collect active tab for each window at startup */
chrome.tabs.query({active: true}, tabs =>
{
for(let i = 0; i < tabs.length; i++)
{
lastActiveTab[tabs[i].windowId] = tabs[0];
}
})
/* listen for tab switch */
chrome.tabs.onActivated.addListener( info =>
{
/* work around for a bug https://bugs.chromium.org/p/chromium/issues/detail?id=1213925 */
setTimeout(() =>
{
/* track active tab */
chrome.tabs.get(info.tabId, tab => lastActiveTab[tab.windowId] = tab);
}, 300);
});
/* listen for new tab event */
chrome.tabs.onCreated.addListener( tab =>
{
/* move tab to the top */
chrome.tabs.move(tab.id, {index: 0});
/* activate previous tab */
chrome.tabs.update(lastActiveTab[tab.windowId].id, {active: true});
/* wait 200ms and activate new tab */
setTimeout(() => chrome.tabs.update(tab.id, {active: true}), 200);
});
在具有大量垂直标签的 MS Edge 中,当新创建的标签移动到顶部附近时,它会将标签滚动到底部,使活动(新)标签看不见。 有没有办法阻止选项卡滚动或至少滚动到活动选项卡?
background.js
/* listen for new tab event */
chrome.tabs.onCreated.addListener( tab =>
{
/* move tab to the top */
chrome.tabs.move(tab.id, {index: 0});
});
manifest.json
{
"background": {
"persistent": true,
"scripts": [ "background.js" ]
},
"description": "open new tabs as first tab",
"manifest_version": 2,
"name": "test",
"permissions": [ "tabs" ],
"version": "0.0.1"
}
对于 MS Edge 垂直标签布局,一个可能的解决方案可能是以这种方式固定标签。
chrome.tabs.onCreated.addListener( tab => {
chrome.tabs.move(tab.id, {index: 0}, t => {
chrome.tabs.update(t.id, {pinned: true})
})
});
编辑:固定选项卡会将其移动到顶部位置S,因此可能不需要chrome.tab.move
到目前为止,我能找到的唯一解决方案是跟踪前一个活动标签,当新标签移动时,激活前一个标签,等待 200 毫秒并激活新标签(延迟小于 200 毫秒似乎非常不可靠)。它有效,但不幸的是它会明显滚动选项卡。
var lastActiveTab = {};
/* collect active tab for each window at startup */
chrome.tabs.query({active: true}, tabs =>
{
for(let i = 0; i < tabs.length; i++)
{
lastActiveTab[tabs[i].windowId] = tabs[0];
}
})
/* listen for tab switch */
chrome.tabs.onActivated.addListener( info =>
{
/* work around for a bug https://bugs.chromium.org/p/chromium/issues/detail?id=1213925 */
setTimeout(() =>
{
/* track active tab */
chrome.tabs.get(info.tabId, tab => lastActiveTab[tab.windowId] = tab);
}, 300);
});
/* listen for new tab event */
chrome.tabs.onCreated.addListener( tab =>
{
/* move tab to the top */
chrome.tabs.move(tab.id, {index: 0});
/* activate previous tab */
chrome.tabs.update(lastActiveTab[tab.windowId].id, {active: true});
/* wait 200ms and activate new tab */
setTimeout(() => chrome.tabs.update(tab.id, {active: true}), 200);
});