Chrome扩展程序可以更改Chrome设置(在新窗口/弹出窗口中打开)吗?

时间:2012-03-26 11:32:35

标签: google-chrome google-chrome-extension settings

类似的问题被问到here,但没有令人满意的答案 我正在尝试使用扩展名更改2个镶边设置。

  1. 导致浏览器以标签而非窗口的形式打开新链接。
  2. 导致浏览器接受来自特定网址的弹出窗口
  3. 我查看了文档,但找不到答案 任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:4)

没有设置以标签而不是窗口打开链接。您可以通过chrome.contentSettings API更改弹出式首选项。

也可以间接启用所有请求的功能。一些想法:

  1. 新窗口而非标签。
    1. 通过chrome.tabs.onCreated检测标签的创建。
    2. 检测窗口是否从另一个窗口内打开:
      使用上一个事件侦听器中的tab.id属性,使用chrome.extension.getViews获取window对象。然后,检查window.opener属性以确定是否从另一个选项卡打开了链接 当链接设置了rel="noreferrer"属性时,这可能不起作用。

      使用chrome.windows.create创建一个新窗口,传递tabId。该选项卡将与其上一个窗口分离,并附加到新窗口。
  2. 您可以重写window.open方法,该方法会调用chrome.tabs.createchrome.windows.create来创建新的弹出窗口。
    可以使用chrome.tabs.onUpdated使用status=="complete"检测页面加载,然后使用chrome.extension.getViews更改window.open方法来完成全局重写。确保您创建了window onject的缓存版本,以便在必要时仍可使用原始方法。
  3. 这些是必要的信息+文档链接,可帮助您创建所需的功能。祝你好运;)