标签: firefox-sidebar

配置sidebar_action仅适用于某些网站?

我想创建一个firefox扩展,允许侧边栏在用户导航到某些网页时自动显示.

例如,假设我将其配置为如此,如果用户导航到google.com他们将会出现一个侧边栏,让他们看到他们已经完成的一些"以前的搜索".

我不希望他们必须单击菜单操作/键盘快捷键才能显示它.而且我不想无限期地展示它.

我一直在查看这些链接,以了解如何使用侧边栏:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action

https://github.com/mdn/webextensions-examples/tree/master/annotate-page

但它们似乎没有涵盖如何有条件地隐藏/显示侧边栏.他们只是有点,总是显示出来.不是我想要的.

有没有办法以这种方式使用侧边栏或我应该使用另一种方法?

javascript firefox firefox-addon firefox-sidebar

5
推荐指数
1
解决办法
85
查看次数

firefox sdk:如何在侧边栏外部使用emit

我正在使用SDK Tutorial网站中的代码:

var sidebar = require("sdk/ui/sidebar").Sidebar({
    id: 'my-sidebar',
    title: 'My Sidebar',
    url: require("sdk/self").data.url("sidebar.html"),
    onAttach: function (worker) {
       // listen for a "ready" message from the script
       worker.port.on("ready", function() {
       // send an "init" message to the script
       worker.port.emit("init", "message from main.js");
    });
 }
});
Run Code Online (Sandbox Code Playgroud)

这非常有效.现在的问题是,这只允许我通过work.port onAttach发送一些东西(以及侧栏上的3个其他事件).我需要的是使用此侧栏范围之外的emit函数.例如,如果我在同一个main.js中使用一个类似于标签的监听器

tabs.on('ready', function(tab) {
    sidebar.worker.port.emit("init", "message from main.js");
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.我也试过了

 sidebar.port.emit("init", "message from main.js");
Run Code Online (Sandbox Code Playgroud)

要么

 worker.port.emit("init", "message from main.js");    
Run Code Online (Sandbox Code Playgroud)

没有成功.

我也尝试将标签监听器放在侧边栏的onAttach中(所以监听器内部是一个监听器),但这也无效.

有人对那个有想法吗?谢谢.

javascript firefox firefox-addon firefox-sidebar firefox-addon-sdk

3
推荐指数
1
解决办法
590
查看次数