gpt4 book ai didi

javascript - 按钮未显示在 Firefox WebExtension 通知中

转载 作者:行者123 更新时间:2023-11-30 09:51:53 24 4
gpt4 key购买 nike

我正在开发一个 Firefox WebExtension,我试图在其中显示带有按钮的通知。我在 Chrome 中有这个工作。根据docs ,这在 Firefox 中受支持。按钮在 NotificationOptions 中列为可选.

chrome.notifications.create(notificaitonId, {
type: "basic",
iconUrl: chrome.extension.getURL("images/unknown.svg"),
title: "Blah",
message: "A Message",
buttons: [{title: "Get More Details"}]
});

当我运行这段代码时,我看到了通知。但是,我没有看到按钮。我错过了什么吗?真的不支持吗?唯一example for notifications不使用按钮,因此没有帮助。

最佳答案

不幸的是,截至 2016 年 3 月 18 日,WebExtension 通知尚未实现按钮。

NotificationOptions documentation on MDN声明[强调/格式化我的]:

The first four properties - type, iconUrl, title, message - are mandatory in notifications.create(), and optional in notifications.update(). Firefox currently supports only these four properties.

并且在 Browser compatibility section :

Firefox only supports: type, iconUrl, title, message.

这里的重要部分(“Firefox 目前只支持这四个属性”,Firefox 只支持:type, iconUrl, title, 消息。)是added to the documentation on 2016-03-07 .因此,如果您查看该日期之前的文档,则不会有任何迹象表明 buttons 尚未实现。

此外,source code有评论:

// FIXME: Lots of options still aren't supported, especially
// buttons.

您还可以在浏览器中找到当前为此使用的源代码:chrome://extensions/content/ext-notifications.js

解决方案:自己实现按钮:

在 WebExtensions 中:
可能可以从 WebExtensions 中自己实现按钮。但是,我对 WebExtensions 不够熟悉,无法说出它是否可能。如果是这样,您可能想看看 source code为其他类型的 Firefox 附加组件实现通知和通知按钮。

对于 Firefox,通常:
如果这是我需要的东西,我可能会选择继续为整个 Firefox 实现 buttons 以及我需要的任何其他选项,然后将代码提交给 Mozilla 以供审查并包含在 Firefox 中。我知道这听起来可能是一件大事,而且让人感到后背疼痛,但实际上应该没有那么困难。

如果您确实希望对其进行处理,则不应进行任何特殊设置。实现 WebExtensions 通知的 JavaScript 代码是 ext-notifications.js 文件,它包含在 omni 的 chrome\toolkit\content\extensions 目录中。 ja 文件(只是一个扩展名为 .ja.zip 文件),它位于 Firefox 安装目录中。请注意,安装目录层次结构中实际上有 3 个不同的 omni.ja 文件。您想要的那个在安装层次结构的根目录中,而不是在 browserwebapprt 子目录中。

处理它就像提取该文件一样简单,修改它,制作更新的 omni.ja 文件并将更新的 omni.ja 文件放入版本中目录。有一段时间,我在每次发布 Firefox 时都会例行公事地这样做,因为我想要一个更长的书签 MRU 文件列表。我最终崩溃了,只是做了一个覆盖扩展,Change Bookmark Recent Folder List Length , 以替换我正在更改的文件。如果你愿意,你可以做同样的事情来实现支持按钮所需的更改。当然,这会导致您当前的扩展依赖于正在安装的另一个扩展,直到代码被集成到 Firefox 中。但是,这会导致您现在拥有开发所需的功能,并且这些功能进入 Firefox 至少比等待 Mozilla 的其他人实现它要快一些。像这样的覆盖扩展只需要 install.rdf文件,两行chrome.manifest文件和更新后的 ext-notifications.js 文件,您希望覆盖/替换当前文件。

关于javascript - 按钮未显示在 Firefox WebExtension 通知中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com