我用JS做一个FIREFOX浏览器的扩展,实现下载网页上的指定图片,下载图片的代码如下
function downloadSingleImage(uri, callback) {
  var ios = Components.classes["@mozilla.org/network/io-service;1"]
                .getService(Components.interfaces.nsIIOService);
      var imageURI = ios.newURI(uri, null, null);
  var imageFileName = uri.substring(uri.lastIndexOf("/") + 1);
      var channel = ios.newChannelFromURI(imageURI);
      var observer = {
        onStreamComplete : function(loader, context, status, length, result) {
          var file = Components.classes["@mozilla.org/file/local;1"]
                      .createInstance(Components.interfaces.nsILocalFile);
      file.initWithFile(saveDirectory);
      file.appendRelativePath(imageFileName);
          var stream = Components.classes["@mozilla.org/network/safe-file-output-stream;1"]
                       .createInstance(Components.interfaces.nsIFileOutputStream);
          stream.init(file, -1, -1, 0);
          var bstream = Components.classes["@mozilla.org/binaryoutputstream;1"]
                        .createInstance(Components.interfaces.nsIBinaryOutputStream);
          bstream.setOutputStream(stream);        
          bstream.writeByteArray(result, length);
          if (stream instanceof Components.interfaces.nsISafeOutputStream) {
            stream.finish();
          } else {
            stream.close();
          }
  if (typeof callback == "function") {
    callback();
  }
        }
      };
      var streamLoader = Components.classes["@mozilla.org/network/stream-loader;1"]
               .createInstance(Components.interfaces.nsIStreamLoader); --------------------------104行
      streamLoader.init(channel, observer, null);
}
不能正常下载,错误提示是
错误 Could not convert JavaScript argument arg 0 [nsIStreamLoader.init] = NS_ERROR_XPC_BAD_CONVERT_JS
源文件: chrome://batchimagesdownloader/content/mainWindow.xul
行: 104
请问是啥原因???怎么改???谢谢诸位???