所以我现在多次查看Add-on SDK的文档,没有哪里可以看到如何创建工具栏或修改现有工具栏.他们有一个关于创建附加栏图标的教程,但这不是我想要的.附加SDK是否支持此功能?如果有,可以有人将我链接到示例/教程.
我希望能够在启动文件下载时在Firefox中弹出的下载对话框中添加一个选项.是否可以使用新的附加SDK来实现,或者我是否必须以旧的方式执行此操作?
编辑:显然,如果选择了新选项,我需要一种方法来了解它并根据它执行代码.
似乎从属性获得的工具提示title="test"不会显示在面板内.
通过面板中加载的stackoverflow进行测试,当您将鼠标悬停在热,周,月上时没有工具提示.但是自定义工具提示有效,例如当您将鼠标悬停在标签上时.
有没有办法在Add-on SDK面板中启用工具提示,或者唯一的方法是自定义工具提示?
面板和内容脚本之间的通信如何发生?我们如何从内容脚本动态更新面板内容?内容脚本访问加载的页面的DOM.现在,每当网页中存在DOM更改时,应在面板中显示.我们应该怎么做?有谁可以用一个例子解释一下?
更新:这是我的ADDON代码
请仔细阅读此代码.我没有得到输出
我是Firefox插件开发的新手.
我需要一种方法从firefox插件中的main.js调用contentcript函数.
我在每个开放的网页上都注入了contentcript xyz.js.
我想从我的main.js中调用我的脚本xyz.js中的函数abc(),点击我在导航工具栏中的一个按钮.
以下是我的代码.
Main.js
..
function addToolbarButton() {
var document = mediator.getMostRecentWindow('navigator:browser').document;
var navBar = document.getElementById('nav-bar');
if (!navBar) {
return;
}
var btn = document.createElement('toolbarbutton');
btn.setAttribute('id', 'mybutton-id');
btn.setAttribute('type', 'button');
btn.setAttribute('class', 'toolbarbutton-1');
btn.setAttribute('image', data.url('icon_16.png'));
btn.setAttribute('orient', 'vertical');
btn.setAttribute('label', 'Test');
btn.addEventListener('click', function() {
tabs.activeTab.attach({
//
abc() //here i want to call the function present in my contentscript
//
});
}, false)
navBar.appendChild(btn);
}
..
Run Code Online (Sandbox Code Playgroud)
xyz.js
..
function abc(){
//here is my code logic
}
..
Run Code Online (Sandbox Code Playgroud)
我开始知道消息传递是这样做但无法在Firefox中实现.
请帮帮我,我被困了.
我想将一个resource://链接,分别是我的Firefox插件中的本地文件加载到iframe网页中.
原因是,出于安全原因,资源应该可视地嵌入到网页中,而不是让网站访问它的DOM.
这个问题在过去的各个地方已经讨论过了,例如这里(没有解决方案):https: //bugzilla.mozilla.org/show_bug.cgi?id = 792479
由于大多数帖子都比较陈旧,我想问一下,如果在此期间有任何新的解决方案或解决方法.
我保留了一些用户数据simple-storage.当用户卸载加载项时,我想删除此用户数据.是否有某些事件或类似事件?
控制台记录某些对象,如对象this.refs或window导致TypeError: cyclic object value终端中的错误.
我的代码非常基本:我正在尝试更改网页上的html(在其中放置反应组件).
Main.js:
var pageMod = require("sdk/page-mod");
var self = require("sdk/self");
var { MatchPattern } = require("sdk/util/match-pattern");
// Create a page mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: /.*wikipedia.org\/wiki\/.*/,
contentScriptFile: [
self.data.url("react-with-addons.js"),
self.data.url("testing.js"),
],
contentScriptWhen: "ready",
// contentStyleFile: self.data.url("style.css"),
});
Run Code Online (Sandbox Code Playgroud)
testing.js:
var AppContainer = React.createClass({displayName: "AppContainer",
componentDidMount: function() {
console.log(this.refs.myRef);
console.log(window);
},
render: …Run Code Online (Sandbox Code Playgroud) 文件说:
节目
显示面板时会发出此事件.
所以main.js我做了这个(在哪里thePanel使用require("panel").Panel方法):
thePanel.port.on("show", function(d) {
console.log('The panel has just been shown');
});
Run Code Online (Sandbox Code Playgroud)
但事件似乎没有被称为.我也尝试在内容脚本中执行一个函数,window.onfocus但似乎也没有调用.
我正在尝试在jetpack插件中使用Firefox 的Downloads.jsm lib(它是Firefox 23中的新功能).
var {Cu} = require("chrome"); //works fine
const {Downloads} = Cu.import("resource://gre/modules/Downloads.jsm"); //works fine
Run Code Online (Sandbox Code Playgroud)
但是执行这些功能中的任何一个都没有效果:
download = Downloads.createDownload({source: "http://cdn.sstatic.net", target: "/tmp/kaki.html"}); //download is an object but has no function "start"
Downloads.simpleDownload("http://cdn.sstatic.net","/tmp/kaki.html");
Run Code Online (Sandbox Code Playgroud)
文档:https : //developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download
你有什么想法,如何使用这些功能?我没有在网上找到任何例子
firefox download firefox-addon download-manager firefox-addon-sdk