使用this example:
var data = "";
Components.utils.import("resource://gre/modules/NetUtil.jsm");
NetUtil.asyncFetch(filename, function(inputStream, status) {
if (!Components.isSuccessCode(status)) {
error("Error reading file. Details:\n" + status);
return;
}
// The file data is contained within inputStream.
// You can read it into a string with
data = NetUtil.readInputStreamToString(inputStream, inputStream.available());
});
我得到了:
错误:未捕获的异常: [例外......“必须有一个频道和 回调“nsresult:”0x80070057 (NS_ERROR_ILLEGAL_VALUE)“位置: “JS框架:: 铬://myapp/content/js/utils.js :: readFile :: line 234“data:no]
第234行指的是:
NetUtil.asyncFetch(filename, function(inputStream, status) {
this other example使用IO xpcom,这是不可用的,我在哪里可以找到它?
有一种简单的方法可以在Xul中用单行文本读取文件吗?
答案 0 :(得分:2)
您需要nsIFile
(或可能是nsIChannel
)作为第一个参数(取决于您的Firefox版本)。请参阅documentation for more details。