如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报

Posted

技术标签:

【中文标题】如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报【英文标题】:How can I get tab notifications in chrome extension, so that the extension can show desktop alert each time when new notification arrives 【发布时间】:2011-09-28 08:22:53 【问题描述】:

是否可以通过 google chrome 扩展读取标签通知(facebook、twitter、gmail 等显示通知计数)。这样我就可以在收到新通知时显示桌面警报。

【问题讨论】:

【参考方案1】:

您可以通过定期检查所有相关选项卡的标题、提取当前通知编号(如果可用)并在检测到通知数量发生变化时通知用户来做到这一点。

但是,根据您执行此检查的频率,用户可能会在您之前注意到。另一种方法是使用content scripts 注入javascript(同样,仅到相关页面-facebook 等),当检测到一个时,它会监听页面的title 元素和sends a message 的变化到您的背景页面然后应该会显示一个桌面通知。

我不知道这最初是否可行,因为我不知道可以收听 title 的更改,但快速的 Google 提供了这个答案;

how to listen for changes to the title element?

因此,您需要做的就是更改该问题答案中的代码,以向您的后台页面发送消息,而不是显示警报。例如;

function titleModified() 
    chrome.extension.sendRequest(
        title: document.title
    );

后台页面必须有一个onRequest 侦听器,然后它会尝试解析收到的标题并确定是否已发出通知。

请记住在您的清单中正确设置permissions,以便在您的用户位于目标站点以及使用desktop notifications 时注入JavaScript。

【讨论】:

以上是关于如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chrome 中获取页面加载事件的通知?

chrome 扩展:如何将某个选项卡中的所有音频静音

如何使用 chrome.tabs.getCurrent 在 Chrome 扩展程序中获取页面对象?

在 Chrome 中单击浏览器通知时如何自动聚焦浏览器选项卡?

构建 chrome 扩展以按 DOM 元素对打开的选项卡进行排序

获取Chrome扩展程序中日历事件的推送通知