我开始使用Firefox插件开发,并熟悉了Add-on Builder.这个向导是否需要我深入了解Firefox插件开发(如果是这样,我将在哪里创建XUL文件以及如何创建自定义工具栏?).或者是否使用此附加构建器无法实现所有功能?还有什么好的教程解释如何使用Add-on Builder开始使用Firefox插件开发(因为它看起来更容易).
我已经提到过的教程:
但这些并不是特定于使用Add-on Builder.我想请某人指点我可以找到使用附加构建器开发的帮助.
此外,如果我使用SDK在本地开发插件,我可以使用任何好的编辑器,它将显示我可以执行的命令列表(如Java中的Eclipse).
红线是我希望我的图标出现的地方.是否可以使用插件构建器执行此操作.

我想使用addon builder为firefox创建一个扩展,阻止用户访问恶意网站; 当我看到一个可疑的URL时,我停止加载该页面并询问用户他是否真的想访问该站点.我怎么能实现呢?我期待功能性的编程,以便我可以进行扩展.请帮我.....
我似乎无法访问内容脚本中的窗口对象.这是正常的吗?
例如,这没有任何作用:
window.onload = function() {
console.log("Hello from the onload");
};
Run Code Online (Sandbox Code Playgroud)
相反,我必须使用该unsafeWindow对象.
unsafeWindow.onload = function() {
console.log("Hello from the onload");
};
Run Code Online (Sandbox Code Playgroud)
我一定错过了一些简单的事情吗?
我正在尝试从其他人创建的Chrome中翻译插件.它有一个内容脚本chrome.cookies.get.我找不到合适的方法来解决这个问题.有什么方法可以从插件sdk中的内容脚本访问cookie吗?
这是原始代码:
function getCookies(domain, name, callback) {
chrome.cookies.get({"url": domain, "name": name},
function(cookie) {
if (callback) {
if (cookie) {
callback(cookie.value);
} else {
callback(null);
}
}
}
);
}
Run Code Online (Sandbox Code Playgroud) cookies sdk firefox-addon google-chrome-extension firefox-addon-sdk
我正在尝试编写我的第一个firefox附加组件.主要问题似乎是我也是javascript的新手.目前我有:
require('sdk/page-mod').PageMod({
include: ["*"],
contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
attachTo: ["existing", "top"]
});
Run Code Online (Sandbox Code Playgroud)
(这里是答案.)现在我想使用声明的函数而不是匿名函数,但我不能让它工作:
require('sdk/page-mod').PageMod({
include: ["*"],
contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
attachTo: ["existing", "top"]
});
getImgData function (e) {
alert("blubber3");
}
Run Code Online (Sandbox Code Playgroud)
第一个问题是我通过添加函数"missing; before statement"得到语法错误.但cfx没有告诉我错误的路线.(有没有任何有用的js编辑工具,具有良好的语法检查/内容辅助?)那么如何声明一个函数并在脚本中的其他地方使用ist.最后,函数需要获取click的目标并解析它.(我阅读了教程但你的所有使用匿名函数:-P)
thx提前
我正在使用插件sdk/tabs api将内容脚本注入到选项卡中,如下所示:
tabs.on(ready, function (tab) {
var worker = tab.attach({
contentScriptWhen: 'end',
contentScriptFile: myAwesomeArrayOfScripts
});
...
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以阻止对域模式的附加?最重要的是,我需要阻止它工作:像Firefox的新标签页这样的域.
显然,我能够用这样的代码控制执行:
if (tab.url.indexOf('about:') === 0) return;
Run Code Online (Sandbox Code Playgroud)
但与chrome声明清单相比,它看起来非常不清楚,你可以在这里:
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*", "file://*/*" ],
Run Code Online (Sandbox Code Playgroud)
有类似的东西吗?Firefox文档令人困惑......太多东西和过去的版本和文章太多了.
firefox-addon google-chrome-extension browser-addons firefox-addon-sdk
我正在尝试使用新的Firefox附加组件构建器在每个页面上获取页面标题.我怎样才能做到这一点?
编辑 更多信息我想在每个页面加载事件上获取页面标题.
我正在为客户开发一个工具栏,它希望在地址栏下方的窗口顶部有一个传统的IE样式工具栏.
这就是我所拥有的: 我所拥有的http://www.hellometro.com/toolbar/now.png
请注意,由于状态栏的垂直限制,我必须用全大写字母书写,以使字母清晰易读,同时小到足以容纳.(状态栏中的两个最左边的元素,文本字段和SEARCH按钮)
这就是我需要的: 我需要的是http://www.hellometro.com/toolbar/whatiwant.png
请注意,添加到顶部的工具栏具有足够的垂直空间,可用于文本字段和按钮中的清晰文本.(在浏览器的后退按钮下方左上方).
我正在寻找一种方法将状态栏中的搜索组件定位为默认位置,并允许用户更改其在选项页面中的位置,让他们选择顶部或底部(因为很多(如果不是大多数Firefox用户)我知道他们可以移动附加组件.
我的问题是:Firefox Add-on SDK是否支持我想做的事情,还是我必须从不同的角度切换语言和解决方案?
我有一个Firefox插件,它在sub.example.com的每个页面上注入/执行jQuery脚本.由于设计不当,该脚本无法在网站的一个页面上运行.如果某个元素位于页面上,有没有办法阻止脚本被执行?
编辑:我正在使用的脚本必须在 DOM加载之前执行.有没有办法访问HTML文件本身,并找出该元素是否存在?
我无法将复杂的Chrome扩展程序转换为Firefox附加组件.在Chrome扩展程序中,作者使用了一些Chrome API,例如
chrome.extension.sendMessagechrome.browserAction.setIconwebkitNotifications.createNotificationchrome.tabs.sendMessagechrome.extension.onMessage.addListenerchrome.browserAction.onClicked.addListenerchrome.privacy.services.autofillEnabled.getchrome.runtime.onInstalled.addListenerchrome.tabs.querylocalStorage等等.
我不知道如何在Firefox附加代码中实现这些方法.可以使用回调函数调用其中一些API.例如:
chrome.extension.sendMessage ( {
type: "get.identitieswithurl",
originUrl: lgmIdentitySave.originUrl,
actionUrl: lgmIdentitySave.actionUrl
},
function (resultIdentities) {
if(resultIdentities != null && resultIdentities.length > 0) {
lgmIdentitiesPage = resultIdentities;
fillFormsWithCredential(resultIdentities[0]);
if(resultIdentities.length > 1 && lgmSuggestionSelectIdDismissed == false) {
showSelectIdentitySuggestionBar();
}
}
}
);
Run Code Online (Sandbox Code Playgroud)
从这个问题,我知道Firefox代码可以像
// main add-on script
pageMod.PageMod({
include: "*.org",
contentScriptFile: self.data.url("my-script.js"),
// Send the content script a message inside onAttach
onAttach: function (worker) {
worker.port.emit("replacePage", "Page matches …Run Code Online (Sandbox Code Playgroud) api firefox-addon google-chrome-extension firefox-addon-sdk content-script
为简单起见,我正在将基于XUL的Firefox插件转换为基于SDK的版本.我在基于XUL的版本中使用的XPCOM模块似乎可以工作,但ci.nsIFile的行为有所不同.
我无法弄清楚如何导航到目前位于目录最高级别的smartProxy.py.
在XUL版本中,smartProxy.py位于chrome/bin/smartproxy.py上.我使用下面的命令来执行程序,它可以正常工作.
getExeFile: function() {
var file = cc["@mozilla.org/file/directory_service;1"].getService(ci.nsIProperties).get("ProfD", ci.nsIFile);
file.append("smartProxy.py");
return file;
},
Run Code Online (Sandbox Code Playgroud)
下面是它执行的地方,它应该可以全面了解附加组件的工作原理.
start: function() {
if (this.process && this.process.isRunning)
return;
this.process = cc["@mozilla.org/process/util;1"].createInstance(ci.nsIProcess);
this.process.init(this.getExeFile());
this.process.runAsync([], 0, this.processObserver);
this.setProxy();
this.executeObservers();
},
Run Code Online (Sandbox Code Playgroud)
我如何找到smartProxy.py以便它可以被执行?
firefox-addon ×11
firefox ×5
javascript ×5
api ×1
cookies ×1
html ×1
jquery ×1
sdk ×1
toolbar ×1
window ×1