持久页面操作图标

时间:2015-04-05 06:44:15

标签: javascript google-chrome-extension

我希望为用户显示一个通知,该通知将以page action的形式始终保持可见状态,直到用户执行某些操作为止。我现在正在使用此代码:

chrome.tabs.getSelected(null, function (tab) {
    chrome.pageAction.show(tab.id);
});

但是,只有在加载扩展程序时,才会在活动选项卡上创建页面操作图标。相反,我希望无论用户在哪个页面或标签上,图标都会一直显示。当用户执行处理通知所需的操作时,它也需要消失。

我在考虑两个想法。第一个是循环并向每个选项卡添加页面操作,然后挂钩新选项卡和导航事件并将其添加到每个选项卡。我的第二个想法是挂钩活动标签更改事件并将其添加到活动标签页,然后在下次更改标签时将其从前标签中删除。

但我认为可能还有一种更好的方式,我没有想到或不知道。那么实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

如果您想获得标签更改的通知,则需要挂钩onActivated事件。

然而,这还不够,因为页面操作将在导航时重置。因此,您需要连接几乎每个tabs API事件以确保您的逻辑。另外,想想之后需要的清理工作。

真的 对于页面操作来说似乎很糟糕。还有一个重要的考虑因素是,典型用户不会将此UI元素与需要关注的内容相关联。您是否考虑过使用通知?

您可以将chrome.notifications Rich Notifications与priority trick一起使用,或仅使用web notifications。在任何一种情况下,它都会以适合于某些方式向用户显示的内容需要您的关注。#34;。然后你可以挂钩它的onclick事件。

如果你想要一个按钮,browserAction是完全合适的。您可以动态更改图片,在图标上添加文本标记以吸引注意力,或者只是在没有任何操作时禁用按钮(不隐藏,但灰显)。

答案 1 :(得分:1)

根据documentation,页面操作应该仅用于单个页面。如果您希望在所有页面上显示某些内容,则应使用browserAction

或者,您可以尝试在权限中设置"<all_urls>",但我还没有测试它是否真的有用。