我正在尝试创建一个FF AddOn,它可以从网站上获取一些XML数据.但我找不到解析我的回应的方法.首先我使用DOMParser但是我收到此错误:
ReferenceError:未定义DOMParser.
有人建议使用XMLHttpRequest,因为解析是自动完成的,但后来我得到了另一个错误:
错误:发生异常.回溯(最近一次调用最后一次):
文件"resource://jid0-a23vmnhgidl8wlymvolsst4ca98-at-jetpack/api-utils/lib/cuddlefish.js",第208行,在require let模块中,manifest = this.manifest [base], requirer = this.modules [base]; TypeError:this.manifest未定义
我真的不知道还能做什么.我必须注意,我正在使用AddOn Builder来实现这一目标.
下面的代码似乎不起作用.
选项1:
exports.main = function() {
require("widget").Widget({
id: "widgetID1",
label: "My Mozilla Widget",
contentURL: "http://www.mozilla.org/favicon.ico",
onClick: function(event) {
var Request = require("request").Request;
var goblecontent = Request({
url: "http://www.myexperiment.org/search.xml?query=goble",
onComplete: function (response) {
var parser = new DOMParser();
var xml = parser.parseFromString(response.text, "application/xml");
var packs = xml.getElementsByTagName("packs");
console.log(packs);
}
});
goblecontent.get();
}
});
};
Run Code Online (Sandbox Code Playgroud)
选项2:
exports.main = function() {
require("widget").Widget({
id: "widgetID1",
label: "My …Run Code Online (Sandbox Code Playgroud) 我一直在使用firefox附加组件很长一段时间,并且使用notpad ++进行开发是一个非常令人头痛的问题.是否有任何合适的IDE或插件可供eclipse使用.就像我们一样**运行在服务器上"用于动态网络项目,有没有办法,我在任何一个文件中做了更改,它会自动创建.xpi文件并安装在Firefox中?
我正在为Firefox 4+编写扩展程序.
我在一个名为的文件中有一些代码utils.js,我想从插件main.js和page-mod内容脚本中调用它.
是否可以从两者引用相同的utils.js?如果是这样,怎么样?
编辑:更好的解决方案是允许我在Google Chrome扩展程序中使用相同的代码.
我正在写一个Firefox扩展,我正在使用他们的附加SDK; 但我无法弄清楚如何将数据文件夹中的本地CSS文件注入网页.如果有办法通过page_mod包来做这件事会很棒.
Chrome的方法会chrome.browserAction.setBadgeText在扩展程序图标上叠加文字.如果您想显示总未读邮件,这很方便.
开发Firefox Addon SDK扩展时是否有等效方法,或者在运行时更改图标的最佳方法是什么?
从SDK版本1.11开始,我在Firefox Add-on SDK API中找不到类似的方法.
我想将两个"Action Buttons"组合成一个,就像Firefox目前使用Bookmarks插件一样,注意它被视为"Customize ..."选项中的一个按钮.
以下是navBar上整个按钮的屏幕截图.

以下是"Customize"gui中"Bookmarks"按钮的屏幕截图.

我仔细阅读了SDK文档,但没有明确的方法.看来这需要操纵sdk/ui库本身.我感谢任何有助于我解决此问题的信息或见解.谢谢.
单击此处获取操作按钮api参考.
我刚刚发现,在Firefox SDK JavaScript(在MDN上),使用了我从未见过的关键字:
var tabs = require('sdk/tabs');
for (let tab of tabs)
console.log(tab.title);
Run Code Online (Sandbox Code Playgroud)
在of关键字由由Mozilla抑或是标准化?
我有一个可在Chrome上运行的扩展程序,用于监控活动标签页以查看网址更改.
具体来说,我需要检测URL何时更改,但没有新页面加载或导航.有些网站会这样做(例如,当您点击在YouTube上观看另一个视频时).
在Chrome上,我完成了以下操作:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo && changeInfo.status == "complete") {
//do stuff here
}
});
Run Code Online (Sandbox Code Playgroud)
如何在Firefox插件中检测到此类更改?
我被告知要使用:在所有标签上听取事件,但我无法将它们放在一起.其中一个问题是gBrowser扩展中没有定义.
我究竟做错了什么?
有更简单的方法吗?
我正在尝试实现我的第一个Firefox插件,所以我是一个完全初学者.
我一直在阅读关于Firefox网页上的[page-mod] [1]文档.我还是不明白怎么做.
基本上在一个基本的html页面我有一个按钮,我想要的是以下内容:
如果我单击该按钮,该按钮将调用Javascript函数runBash()(在html页面内声明),此函数可以与index.js(附加脚本)进行通信.这似乎很简单,但它让我发疯.
[更新代码]
index.js/main.js附加代码:
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: data.url("./bash.html"),
contentScriptFile: data.url("./content-script.js"),
contentScriptWhen: "ready", // script will fire when the event DOMContentLoaded is fired, so you don't have to listen for this
attachTo: ["existing", "top"],
onAttach: function(worker) {
worker.port.on("bash", function() {
//var bash = child_process.spawn('/bin/sh', ['/root/tfg/data/test.sh']);
alert("IT WORKS!");
});
}
});
var button = ToggleButton({
id: …Run Code Online (Sandbox Code Playgroud) 我正在使用ToolAPI将面板添加到Firefox DevTools.
我可以定义setup()和dispose()处理初始化和拆卸的方法.
但是,我无法弄清楚如何确定面板当前是否可见,或者何时更改可见性.这个事件是否暴露在某个地方?
要清楚,我只想知道我的小组.所以我想知道我的面板何时可见,或者当用户切换到例如Elements选项卡时.