0

我正在构建一个扩展,我想从窗口弹出窗口中获取文件的路径,就像 windows 一样。类似的东西可以在Firefox的扩展中使用吗?

在此处输入图像描述

4

1 回答 1

1

您应该在 MDN 上查看此页面

创建文件选择器

首先,您需要创建一个文件选择器组件并对其进行初始化。

var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, "Select a File", nsIFilePicker.modeOpen);

首先,创建一个新的文件选择器对象并将其存储在变量“fp”中。'init' 函数用于初始化文件选择器。这个函数接受三个参数,打开对话框的窗口,对话框的标题和模式。这里的模式是 modeOpen,用于打开对话框。您还可以将 modeGetFolder 和 modeSave 用于其他两种模式。这些模式是 nsIFilePicker 接口的常量。

获取选中的文件

最后,您可以通过调用 show() 函数来显示对话框。它不接受任何参数,但返回一个状态代码,指示用户选择的内容。请注意,在用户选择文件之前,该函数不会返回。该函数返回三个常量之一:

returnOK - 用户选择一个文件并按下 OK。用户选择的文件将存储在文件选择器的文件属性中。

returnCancel - 用户按下取消。

returnReplace - 在保存模式下,此返回值标识用户选择了要替换的文件。(当用户输入新文件的名称时将返回returnOK。)您应该检查返回值,然后使用文件属性从文件选择器中获取文件对象。

var res = fp.show();
if (res != nsIFilePicker.returnCancel){
  var thefile = fp.file;
  // --- do something with the file here ---
}
于 2013-08-01T11:03:29.147 回答