有没有一个干净的方式为谷歌浏览器扩展设置一个非本地网页作为新的标签页,同时也保持全框清除或突出显示?
扩展清单中的chrome_url_overrides.newtab option只允许本地 HTML 页面。
现在,我看到两个选择:
iframe 在本地扩展页面中的网页。但是,许多网站在 iframed 时无常工作。
将本地新标签页重定向到网页。但是,这并不能可靠地突出显示 omnibox,因此用户必须在键入之前手动将焦点设置到 omnibox,这是一种较差的用户体验。
理想的解决方案将保持网页是新标签页的顶部框架,并且 omnibox 将被清除或突出显示。
附加信息:
对于 Chrome 扩展程序New Tab Redirect,有一个关于此主题here的正在进行的未解决线程。
使用chrome.tabs.update
重定向新选项卡页历来突出显示 URL。但是,这似乎是未记录和不可靠的。突出显示broke in Chrome 34和似乎是broken now in Chrome 61(我刚刚报告的一个错误)。
我已经为 Chrome 扩展打开了一个feature request,以更好地支持这个用例。
在此期间的两个选项是:
在本地扩展新标签页上,为网页创建一个 iframe。
在扩展后台脚本中,侦听新选项卡创建并将 URL 更新到网站。
// background.js
// Listen for new tabs.
chrome.tabs.onCreated.addListener(function (tab) {
// Only redirect if this is a blank new tab (not opened by clicking a link).
if (tab.url === 'chrome://newtab/') {
// Sw your website. This might highlight the omnibox,
// but it's not guaranteed.
chrome.tabs.update(tab.id, {url:'https://example.com'});
}
});
如问题中所述,这在过去不可靠地突出显示了 URL。截至目前,URL 突出显示已中断(Chrome 稳定 v61),但suld be fixed in v62。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(19条)