我无法弄清楚如何在Firefox插件中使用正则表达式匹配模式(使用附加组件生成器).我试过用match-pattern包.
我main.js看起来像这样:
var { MatchPattern } = require("match-pattern");
//Matching all urls containing moz and chrome
var pattern = new MatchPattern(/.*moz.*/);
var pattern2 = new MatchPattern(/.*chrome.*/);
var pageMod = require("page-mod");
var data = require("self").data;
pageMod.PageMod({
include: [pattern, pattern2],
contentScriptWhen: 'ready',
contentScriptFile: [data.url('jquery-1.7.1.min.js'),data.url('jquery-ui.js')]
});
Run Code Online (Sandbox Code Playgroud)
但错误控制台显示此错误:
时间戳:3/19/2012 9:03:34 PM错误:发生异常.回溯(最近一次调用最后一次):文件"资源://jid0-m6oqvn6bm6wcoo89bddsxwddkou-at-jetpack/api-utils/lib/match-pattern.js",第87行,在MatchPattern_test中.thegexp.exec(urlStr)[0 ] == urlStr)TypeError:this.regexp.exec不是函数
我在这做错了什么?我可以在include数组中传递正则表达式匹配模式pageMod吗?任何帮助,将不胜感激.
我实际上正在使用Add-on Builder开发一个附加组件,但现在我想更改为SDK,因为有更多的可能性.
我已经像这样安装了sdk和Python:C:\ Users\bla\Add-ons\addon-sdk-1.8.1
(在addon-sdk-1.8.1里面我添加了tar Python-2.6.8)
现在在cmd我键入:
cd C:\Users\bla\Add-ons\addon-sdk-1.8.1
mkdir my-addon
cd my-addon
cfx init
Run Code Online (Sandbox Code Playgroud)
这很好 - >文件夹my-addon已经创建了整个目录.
然后我删除了文件夹my-addon并再次尝试了相同的命令并获得:
'cfx' is not recognized as internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
mddir my-addon创建了my-addon文件夹.但cfx init产生了错误.
这是我第一次使用cmd命令而且我不知道我现在要做什么
我正在使用Firefox的Addon SDK(v1.9)进行构建和扩展.
我的应用程序应该删除cookie,因为它们是根据匹配URI的数据库添加(或更改)的.
我通过向'cookie-changed'添加观察者并实现nsICookie以识别匹配的cookie和nsICookieManager以在找到匹配时删除cookie 来完成此任务.
问题
我需要知道每个cookie添加/更改的网站(URL).
请注意以下代码:
$.ajax({
type: "POST",
url: loginURL,
data: jsonArray,
async: true,
success: function(data, status){
alert(status);
},
error: function(data, status){
alert(status + " 1");
}
});
Run Code Online (Sandbox Code Playgroud)
每次都会抛出错误案例,但我打开了提琴手,我从服务器接收数据就好了。我将面板附加到小部件。在面板中加载的 HTML 中,我包含了最新的 jquery 和登录 javascript 文件。
我正在使用Mozilla Add-on Sdk for Firefox来创建一个小扩展.我想从多个服务器获取数据并将其显示在用户页面的左上角.我不知道为什么,但是当我尝试从服务器读取数据时,XMLHttpRequest无法正常工作.也许位置起源不同而Firefox会阻止它.请告诉我如何做XMLHttpRequest?或者如何从带有Add-on Sdk构建的扩展的服务器读取数据?
我想对我的Firefox插件使用Google Analytics(分析)事件跟踪。我在popup.html中包含了这样的ga脚本。
<script src="http://www.google-analytics.com/ga.js"></script>
Run Code Online (Sandbox Code Playgroud)
并且还添加了:
<script >
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
</script>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码推送事件:
_gaq.push(['_trackEvent', 'example', 'clickedit']);
Run Code Online (Sandbox Code Playgroud)
我在firefox错误控制台中看不到任何错误,并且该事件在分析页面中也没有。
任何的想法?Firefox不允许这样做吗?
谢谢
我正在开发一个firefox附加组件,我想将对象记录到console.log.有没有办法将对象描述扩展到单调之外[object Object]?我的意思是,如果我有像{hello: "world"}我想要的那样的字段和值,就像在node.js的控制台中一样显示?没有实际实现迭代值的循环.
一直试图让以下代码在firefox附加组件中工作:
var oMyForm = new FormData();
oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456); // number 123456 is immediately converted to string "123456"
// HTML file input user's choice...
oMyForm.append("userfile", fileInputElement.files[0]);
// JavaScript file-like object...
var oFileBody = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...
var oBlob = new Blob([oFileBody], { type: "text/xml"});
oMyForm.append("webmasterfile", oBlob);
var oReq = new XMLHttpRequest();
oReq.open("POST", "http://foo.com/submitform.php");
oReq.send(oMyForm);
Run Code Online (Sandbox Code Playgroud)
所以我知道我必须使用XPCOM,但我找不到相同的东西.到目前为止我发现了这个:
var oMyForm = Cc["@mozilla.org/files/formdata;1"].createInstance(Ci.nsIDOMFormData);
oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456); // number 123456 is immediately converted to …Run Code Online (Sandbox Code Playgroud) 我想检索我的Firefox插件的当前版本.
插件是使用Firefox SDK开发的.目前,我的main.js文件看起来像这样:
/*=== SDK INIT ===*/
var pageMod = require("sdk/page-mod"),
tabs = require("sdk/tabs"),
data = require("sdk/self").data,
prefs = require("sdk/simple-prefs"),
{ Cu, Cc, Ci } = require("chrome");
// Get Addon version
let AddonManager = Cu.import("resource://gre/modules/AddonManager.jsm").AddonManager;
var version = AddonManager.getAddonByID("< MY_GUID >", function(addon) { return addon.version; });
// [...]
Run Code Online (Sandbox Code Playgroud)
其中"MY_GUID"是我的扩展程序的GUID.但这根本不起作用!任何帮助赞赏.
我想让用户在我的插件的首选项窗口中上传图像(到插件的文件夹).
这是我目前的prefpane:
<prefpane id="tpt-pane" label="Settings">
<preferences>
<preference id="pref_upload" name="addonname.upload" type="file"/>
</preferences>
<hbox align="center">
<label control="upload" value="The file: "/>
<input type="file" preference="pref_upload" id="upload" />
</hbox>
</prefpane>
Run Code Online (Sandbox Code Playgroud)
我有什么方法可以做到这一点(有一个解决方法)?