症状

症状

症状

  • 用户打开他们的网络邮件帐户,单击某些附件,然后单击“使用 Word 打开”。
  • 用户花费数小时编辑他们珍贵的文档。用户保存 Word 文档并退出。
  • 用户找不到文件。
  • 用户拿起火把和干草叉(最后一步可选)

在此处输入图片描述

问题原因

Firefox 的下载对话框显示两个选项:“保存存档“ 和 ”打开用“。

在此处输入图片描述

通过选择“打开方式”,Firefox 会将文件下载到临时文件夹并打开相关的应用程序。我想阻止这种行为

我尝试过

我做了作业,搜索了MozillaZine以及知识库(如这里这里或者这里),如果我理解正确的话,下载对话框将不取决于文件的扩展名,而是取决于它的 mime 类型。

我知道我可以通过转到“首选项”>“应用程序”来设置行为,如下所示:

在此处输入图片描述

然而:

  • Firefox 依赖于 mime 类型服务器通知。但它本身可能不正确、被省略或冗余(一种文件类型可以有多种 MIME 类型,反之亦然)。
  • Firefox 会根据每个 MIME 类型记住“从现在起自动对此类文件执行此操作”复选框。如果我想强制执行某种行为,我必须手动为每种 MIME 类型设置它。
  • 我无法在应用程序列表中创建新条目。只有从未注册的 MIME 类型进行新下载时,才会填充该条目。只有这样我才能更改列表中的行为。
  • 我可以编辑mime类型.rdf文件,强制“保存文件”行为,但我找不到强制所有文件执行此行为的方法。

我需要一种方法(最好)使其无法用外部应用程序打开,或者至少强制保存文件。

我知道我可以设置browser.altClickSaveabout:config在单击按 ALT 时保存文件,但我需要一些不需要用户交互的解决方案。

答案1

制作一个部署给用户的主 mimeTypes.rdf 文件是最好的解决方案

在能够很好地处理 XML 样式文档的编辑器中打开 mimeTypes.rdf(例如 Notepad++)

查找第一行并用第二行替换:

NC:saveToDisk="false"
NC:saveToDisk="true"
  and
NC:alwaysAsk="true"
NC:alwaysAsk="false"  

我还会将用户积累的一些奇特内容“播种”到您的主 mimeTypes.rdf 中:

  1. 从使用网络邮件附件最频繁的 2-3 个用户那里复制 mimeTypes.rdf
  2. 将用户类型与你的主类型进行比较:

命令执行程序

find "<RDF:li RDF:resource=" Master_mimeTypes.rdf > MasterMimes.txt   #generate list of mimetypes
find "<RDF:li RDF:resource=" User1_mimeTypes.rdf > User1Mimes.txt     #generate list of mimetypes
fc MasterMimes.txt User1Mimes.txt                                     #compare lists of mimetypes

如果发现任何新类型,请从用户文件中获取整个节并添加到主文件中。

答案2

现在about:config有一个选项browser.download.forbid_open_with。只需将其设置为true

答案3

笔记:这些说明仅适用于 Windows,但也适用于其他操作系统。此解决方案不适用于没有禁用 PDF.js 和/或其他 PDF 查看器插件. 它也不适用于 Firefox 可以直接打开的文件(例如 MP3 文件、图像、视频text/plain文件等)。


好吧,这个解决方案并不像您希望的那样免去用户交互,但如果您有能力提供定制版本的 Firefox,或者您可以在每个用户的计算机上运行批处理脚本,您可以尝试这个:

  1. 安装最新测试版自动保存文件夹(非洲猪瘟)

  2. 创建一个过滤器来匹配来自任何域的任何类型的文件。
    另外,请务必阅读首次安装指南 ASF 过滤器

  3. 配置 ASF 以自动Save File从保存对话框中 选择选择自动保存

  4. 安装联邦航空管理局备份浏览器配置文件(包括首选项)并在个人电脑上恢复它们

或者,如果您可以在用户的​​计算机上运行批处理脚本,请运行以下脚本(安装 ASF 后):

文件名:Configure ASF.bat
@ECHO 关闭
:: 如果 Firefox 正在运行,请将其终止,否则 prefs.js 将不会更新
开始“”/等待/B“taskkill”/F/IM firefox.exe

:: 找出 Firefox 的用户配置文件目录并导航至该目录
设置 ProfileDir=%APPDATA%\Mozilla\Firefox\Profiles
CD/D %配置文件目录%
FOR /F "tokens=* USEBACKQ" %%F IN (`dir /A:D /B ^| find "default"`) DO (
设置“ProfileDir=%ProfileDir%\%%F”
CD/D %配置文件目录%

:: 从“extpref.txt”读取 ASF 首选项并将其附加到 Firefox 的首选项文件中
类型%〜dp0%\extpref.txt >> prefs.js

::由于每个用户的用户名必然会改变,找出“下载”的路径
:: 文件夹并将其附加到 prefs.js
设置 DownloadsDir=%USERPROFILE%\Downloads
ECHO user_pref("extensions.asf.filters0.folder", "%DownloadsDir:\=\\%"); >> prefs.js
ECHO user_pref("extensions.asf.lastpath", "%DownloadsDir:\=\\%"); >> prefs.js

暂停
文件名:extpref.txt
用户首选项(“extensions.asf.dialogForceRadio”,true);
用户首选项(“extensions.asf.dialogaccept”, true);
用户首选项(“extensions.asf.filters0.active”, true);
用户首选项(“extensions.asf.filters0.domain”, “*”);
用户首选项(“extensions.asf.filters0.domain_regexp”,false);
user_pref("extensions.asf.filters0.filename", "*");
用户首选项(“extensions.asf.filters0.filename_regexp”,false);
用户首选项(“extensions.asf.filtersNumber”, 1);
用户首选项(“extensions.asf.tempdomain”,“http://chrisblattman.com”);
user_pref("extensions.asf.useDownloadDir", true);
用户首选项(“扩展.asf.版本”, “1.0.5bRev128”);
用户首选项(“extensions.asf.viewdloption”, true);
用户首选项(“extensions.asf.viewpathselect”, true);
用户偏好(”[电子邮件保护]“, 真的);

该脚本接受的输入extpref.txt应位于与脚本本身相同的文件夹中,并且必须包含 ASF 的首选项,该首选项将在 Firefox 的首选项文件 (prefs.js) 中更新

您可以从about:config或者直接从中extensions.asf.*获取它们prefs.js,通常位于文件夹中:

%APPDATA%\Mozilla\Firefox\Profiles\????????.default\

创建时extpref.txt请确保不包含extensions.asf.filters0.folder和,extensions.asf.lastpath因为每个用户的它们都会有所不同。

答案4

对于较新版本的 Firefox,您需要编辑 handlers.json 文件并添加新的 mimetype。如果您查看已存在的默认 mimetype,您可以非常轻松地添加它们和操作。只需记住“0”表示操作中的下载。请务必进行备份,以防万一您搞砸了什么。

相关内容