从Chrome扩展程序后台脚本

时间:2018-01-08 21:20:56

标签: javascript google-chrome google-chrome-extension

我希望能够显示样式化的警报对话框 - 从Chrome扩展程序的后台脚本调用警告对话框。

我在后台脚本中有以下代码:

chrome.browserAction.onClicked.addListener(function (details) {

  chrome.windows.getCurrent({}, function (currentWindow) {

    const currentWindowId = currentWindow.id;

    chrome.tabs.query({}, function (tabs) {

      const myTab = tabs.find(function (tab) {
        return String(tab.url).trim().startsWith(sumanExtensionURL);
      });

      if (myTab) {

        chrome.tabs.update(myTab.id, {highlighted: true});
        if (String(myTab.windowId).trim() !== String(currentWindowId).trim()) {
          alert('Suman Chrome Extension already opened in another window.');
        }
      }
      else {
        console.log('no existing tab found, opening a new one.');
        chrome.tabs.create({url: chrome.extension.getURL('dist/index.html')});
      }
    });
  });

});

此代码正在执行的操作是,如果不存在匹配的选项卡,则打开新选项卡,否则将匹配选项卡设置为活动。

但是,如果匹配标签位于与当前标签不同的窗口中,我想让用户知道,否则他们可能会感到很困惑,因为他们没有任何其他视觉确认。

当我显示警报时,它就是这样的:

enter image description here

有没有办法设置此警报消息的样式?是否有另一种方法来创建可以某种方式设置样式的警报消息?

1 个答案:

答案 0 :(得分:1)

您可以更改提醒功能的作用:

window.alert = function (message) {
  // Do something with message
};

您无法更改本机警报功能启动的模式窗口的标题,样式或其他行为。

您可以做什么 - 创建自定义组件(对话框,只是常规HTML元素)并将其插入带有内容脚本的页面中。从后台页面只需发送一条消息即可显示此自定义对话框。