小编nma*_*ier的帖子

参考错误:未定义 TextEncoder

我正在 Linux 上的 Firefox - 24 中编写一个简单的插件。我收到错误:

ReferenceError: TextEncoder is not defined
Run Code Online (Sandbox Code Playgroud)

当我这样做时: var encoder = new TextEncoder(); 我正在使用的功能是:

function write_text(filename, text) {
    var encoder = new TextEncoder();
    var data = encoder.encode(text);
    Task.spawn(function() {
       let pfh =  OS.File.open("/tmp/foo", {append: true});
       yield pfh.write(text);
       yield pfh.flush();
       yield pfh.close(); 
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript firefox-addon firefox-addon-sdk

5
推荐指数
6
解决办法
2万
查看次数

将二进制组件引用到js-ctypes

我已经注册了一个二进制组件chrome.manifest:

binary-component components/linux/myLib.so abi=Linux_x86-gcc3
Run Code Online (Sandbox Code Playgroud)

现在我想通过它的路径ctypes.open().我的问题是:我如何引用二进制组件,以便将其传递给ctypes.open()

javascript packaging firefox-addon jsctypes

4
推荐指数
2
解决办法
2064
查看次数

如何在FirefoxOS中从javascript触发本机日期选择器?

我想点击按钮打开FirefoxOS的原生日期选择器.默认情况下,当输入(显然日期类型)具有焦点时,将显示本机日期选取器.但如何用按钮做到这一点?此外,我不喜欢日期输入,因为我的应用程序是法语,日期输入中显示的日期格式不是法语格式.

我测试了一个隐藏着css的日期输入.单击按钮会触发输入焦点.但在这种情况下,不显示日期选择器.

请不要建议我使用JQuery UI或其他javascript日期选择器.在移动设备上,它们不是非常可用,最好的是原生日期选择器.

谢谢你的帮助

firefox mobile datepicker firefox-os

4
推荐指数
1
解决办法
1579
查看次数

在Firefox OS模拟器中是否破坏了Uint8Array/Uint16Array转换?

如果我只是愚蠢,我会很高兴她.:)

这是我的代码:

var t16 = new Uint16Array( new Uint8Array([1, 2, 3, 4]));
console.log(t16.BYTES_PER_ELEMENT);
for( var i = 0; i < t16.length; i++) 
    console.log(t16[i]);
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

[02:56:32.197] 2
[02:56:32.197] 1
[02:56:32.197] 2
[02:56:32.197] 3
[02:56:32.197] 4
Run Code Online (Sandbox Code Playgroud)

从我期望的文档:

2
513
1027
Run Code Online (Sandbox Code Playgroud)

在真正的项目中,我使用的是一个tar库,它提供了一个包含我想要读取的16位数据的ArrayBuffer,但我总是只能访问8位值.

我的期望是错的吗?至少我是这样阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays中的 "使用复杂数据结构"部分的方式

对于记录:Firefox是23.0.1,Java是平台SE 7 U25 10.25.2.17,Firefox OS模拟器是W7/64机器上的5.0pre3.

javascript firefox firefox-os

4
推荐指数
1
解决办法
2782
查看次数

消息:SyntaxError:missing:属性id之后

我正在尝试学习如何为firefox做简单的添加.我基于这个教程.

这是我的代码:

LIB/main.js

var self = require("sdk/self");

var button = require("sdk/ui/button/action").ActionButton({
  id: "style-tab",
  label: "Style Tab",
  icon: "./icon-16.png",
  onClick: function() {
    require("sdk/tabs").activeTab.attach({
        contentScriptFile: [self.data.url("jquery.js"), self.data.url("edit-page.js")]
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

数据/编辑page.js

$("body div").css("visibility", "hidden");
$("body").append( $("#addon_hide_page") );

var styles = {
    width: "100%",
    height: "100%",
    backgroud-color: "gray"
}

$("body #addon_hide_page").css(styles);
Run Code Online (Sandbox Code Playgroud)

错误输入到此问题的标题中:"消息:SyntaxError:missing:after property id".正如所见:"id"后面有一个":"(main.js中的第四行).发生什么了?

BTW:有没有比在Windows CMD中阅读那些无用语句更好的方法来调试firefox插件?

javascript firefox firefox-addon firefox-addon-sdk

4
推荐指数
1
解决办法
1156
查看次数

将数据URI写入Firefox扩展中的文件

我正在开发一个Firefox插件.我需要将一堆数据URI图像保存到磁盘.我该如何处理?

我浏览过MDN上的文件I/O片段,但这些片段对我没什么帮助.

有异步和同步方法.我想使用异步方法,但如何使用异步方法编写二进制文件

Components.utils.import("resource://gre/modules/NetUtil.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");

// file is nsIFile
var file = FileUtils.getFile("Desk", ["test.png"]);

// You can also optionally pass a flags parameter here. It defaults to
// FileUtils.MODE_WRONLY | FileUtils.MODE_CREATE | FileUtils.MODE_TRUNCATE;
var ostream = FileUtils.openSafeFileOutputStream(file);

//base64 image that needs to be saved 
image ="iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";

// How can I create an inputstream from the image data URI?
var inputstream = createInputstream(image);

// The last argument (the callback) is optional.
NetUtil.asyncCopy(inputstream , ostream, function(status) {
  if (!Components.isSuccessCode(status)) { …
Run Code Online (Sandbox Code Playgroud)

javascript firefox firefox-addon

4
推荐指数
1
解决办法
1114
查看次数

如何在 Firefox Add On 中找出浏览器的用户代理

我正在创建(开发)一个 Firefox 插件,我需要找到浏览器的用户代理。在navigator.userAgent不工作。它表明navigator未定义。

我需要什么 Firefox 附加模块来获取用户代理,还是有其他方法可以在附加模块中找到它?

javascript firefox-addon firefox-addon-sdk

4
推荐指数
1
解决办法
581
查看次数

在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扩展中的ContentScript,不使用附加SDK

有没有一种简单的方法可以为简单的内容脚本创建Firefox扩展,而无需使用Add-On SDK和PageMod?通过安装Python和SDK的麻烦,学习如何使用SDK和API,添加不必要的膨胀和抽象层,只是为了执行简单的内容脚本,这似乎有点过分.

我已经尝试过使用XUL浏览器覆盖并在那里注入脚本,但是在browser.xul上下文中注入所有内容而不是document.body增加了很多复杂性......

那么在html文档而不是XUL文档中注入一些脚本和css文件最简单,最轻量级的方法是什么?

javascript firefox firefox-addon content-script

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

WM_GETICON 不起作用(Windows)

如果我不首先使用 WM_SETICON 来设置图标,那么 WM_GETICON 总是返回 0。这很奇怪。请帮忙。

这是我的代码,可以复制粘贴到暂存器并运行。

当执行SendMessage(targetWindow_handle, WM_GETICON , ICON_SMALL, ctypes.voidptr_t(0)), hIconSmall_origandhIconBig_orig时总是返回 0 我不知道为什么。如果您首先在窗口上使用 WM_SETICON,那么它会正确获取 HICON,但整个目的是获取默认图标。

Cu.import('resource://gre/modules/ctypes.jsm');

var user32 = ctypes.open('user32.dll');

/* http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx
 * LRESULT WINAPI SendMessage(
 * __in HWND hWnd,
 * __in UINT Msg,
 * __in WPARAM wParam,
 * __in LPARAM lParam
 * );
 */
var SendMessage = user32.declare('SendMessageW', ctypes.winapi_abi, ctypes.uintptr_t,
    ctypes.voidptr_t,
    ctypes.unsigned_int,
    ctypes.int32_t,
    ctypes.voidptr_t
);

var WM_GETICON = 0x007F;
var WM_SETICON = 0x0080;
var ICON_SMALL = 0;
var ICON_BIG = 1;
var …
Run Code Online (Sandbox Code Playgroud)

c++ icons user32 firefox-addon jsctypes

2
推荐指数
1
解决办法
2825
查看次数