XUL:在同一文件中多次重用覆盖层?

发布于 2024-11-11 13:36:53 字数 173 浏览 5 评论 0原文

我正在开发一个 Firefox 扩展。我需要在“工具”菜单和“上下文”菜单中显示一个菜单 X。工具菜单项和上下文菜单项在同一文件中定义,但菜单 X 在另一个文件中定义。

由于我通过 id 重复使用菜单 X,因此只有最后一次使用它才有效。如何在同一个文件中多次重复使用它而不产生冗余

I'm developing a Firefox extension. There is a menu X which I need to show in both Tools menu and Context menu. Tools menu item and Context menu item are defined in same file but menu X in another file.

As I'm reusing menu X by id only last use of it is effective. How can I reuse it multiple time in same file without redundancy?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤单情人 2024-11-18 13:36:53

可以使用 XBL 来完成。

It can be done using XBL.

惟欲睡 2024-11-18 13:36:53

我也没有找到好的解决办法。该方法是仅在覆盖层中定义菜单一次,然后将其克隆到“加载”事件处理程序中。然后,您可以将克隆插入到第二个位置。您必须小心,因为 ID 属性必须保持唯一 - 因此,如果您的菜单使用 ID 属性,您将必须另外重写它们。丑陋,我知道。

I haven't found a good solution either. The approach is rather to define the menu in the overlay only once and then clone it in your "load" event handler. You can then insert the clone at the second location. You have to be careful because ID attributes have to stay unique - so if your menu uses ID attributes you will have to additionally rewrite them. Ugly, I know.

等风也等你 2024-11-18 13:36:53

根据定义,ID 是唯一的。这意味着您无法共享菜单项,但可以共享调用操作时执行的代码。实现此目的的一种方法是使用命令

IDs are, per definitionem, unique. That means you can't share the menuitem but you can share the code that gets executed when the action is invoked. One way to achieve this is to use commands.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文