使用网页覆盖Chrome新标签页?

时间:2017-09-17 23:09:42

标签: google-chrome-extension

Google Chrome扩展程序是否有一种干净的方法可以将非本地网页设置为新标签页,同时保持多功能框清除或突出显示?

扩展程序清单中的chrome_url_overrides.newtab option仅允许本地HTML页面。

现在,我看到两个选项:

  1. iframe本地扩展页面中的网页。但是,许多网站在iframed时都无法正常工作。
  2. 将本地新标签页重定向到网页。但是,这并不能可靠地突出显示多功能框,因此用户必须在打字前手动将焦点设置到多功能框上,这是一种糟糕的用户体验。
  3. 理想的解决方案是将网页保持为新标签页的顶部框架,并且可以清除或突出显示多功能框。

    其他信息:

    • 针对Chrome扩展程序here,此主题New Tab Redirect上有一个正在进行的未解决的主题。
    • 使用chrome.tabs.update重定向新标签页,历来突出显示了该网址。但是,这似乎没有证据,也不可靠。突出显示broke in Chrome 34并且似​​乎是broken now in Chrome 61(我刚刚报告的错误)。

1 个答案:

答案 0 :(得分:1)

目前,这还不太可能。我为Chrome扩展程序打开了feature request,以便更好地支持此用例。

与此同时,两个选项是:

  1. 在本地扩展程序新标签页上,为网页创建一个iframe。

  2. 在扩展后台脚本中,侦听新标签创建并更新网站的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/') {
    
        // Show your website. This might highlight the omnibox,
        // but it's not guaranteed.
        chrome.tabs.update(tab.id, {url:'https://example.com'});
      }
    });
    

    正如问题中所述,过去这一点无法突出显示网址。截至目前,网址突出显示已被破坏(Chrome stable v61),但should be fixed in v62