标签: firefox-addon-sdk

URL匹配firefox插件中的模式

我无法弄清楚如何在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吗?任何帮助,将不胜感激.

pattern-matching firefox-addon firefox-addon-sdk

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

'cfx'不被视为内部或外部命令

我实际上正在使用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 firefox-addon-sdk

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

从cookie获取主机

我正在使用Firefox的Addon SDK(v1.9)进行构建和扩展.

我的应用程序应该删除cookie,因为它们是根据匹配URI的数据库添加(或更改)的.

我通过向'cookie-changed'添加观察者并实现nsICookie以识别匹配的cookie和nsICookieManager以在找到匹配时删除cookie 来完成此任务.

问题

我需要知道每个cookie添加/更改的网站(URL).

firefox firefox-addon firefox-addon-sdk

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

如果 AJAX 请求失败,Firefox 插件 sdk

请注意以下代码:

    $.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 文件。

jquery firefox-addon-sdk

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

firefox插件sdk中的XMLHttpRequest

我正在使用Mozilla Add-on Sdk for Firefox来创建一个小扩展.我想从多个服务器获取数据并将其显示在用户页面的左上角.我不知道为什么,但是当我尝试从服务器读取数据时,XMLHttpRequest无法正常工作.也许位置起源不同而Firefox会阻止它.请告诉我如何做XMLHttpRequest?或者如何从带有Add-on Sdk构建的扩展的服务器读取数据?

javascript firefox firefox-addon firefox-addon-sdk

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

在Firefox扩展程序中使用Google Analytics(分析)

我想对我的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不允许这样做吗?

谢谢

google-analytics firefox-addon firefox-addon-sdk

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

将对象记录到console.log

我正在开发一个firefox附加组件,我想将对象记录到console.log.有没有办法将对象描述扩展到单调之外[object Object]?我的意思是,如果我有像{hello: "world"}我想要的那样的字段和值,就像在node.js的控制台中一样显示?没有实际实现迭代值的循环.

firefox firefox-addon firefox-addon-sdk

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

在firefox附加组件上使用Blob

一直试图让以下代码在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)

来自https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects?redirectlocale=en-US&redirectslug=Web%2FAPI%2FFormData%FUsing_FormData_Objects

所以我知道我必须使用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)

javascript firefox xpcom firefox-addon firefox-addon-sdk

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

使用Firefox Addon SDK检索插件版本

我想检索我的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.但这根本不起作用!任何帮助赞赏.

javascript firefox-addon firefox-addon-sdk

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

如何将文件输入元素放在Firefox插件的首选项窗格中?

我想让用户在我的插件的首选项窗口中上传图像(到插件的文件夹).

这是我目前的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)

我有什么方法可以做到这一点(有一个解决方法)?

firefox firefox-addon firefox-addon-sdk

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