在 Firefox 中禁用打印

在 Firefox 中禁用打印

我正在使用 Firefox 23.0.1。我想完全禁用 Firefox 打印功能,可以吗?

我用了关于:配置设置以下属性:

  • 打印.always_print_silent = true
  • 打印.显示打印进度=false

我已经完成了一半,Firefox 打印时没有声音,也没有显示任何打印提示。但是作业仍然发送到默认打印机。

然后我尝试设置打印打印机为空字符串,因为这似乎是默认打印机,但它仍将作业发送到该打印机。

有没有办法完全禁用 Firefox 的打印功能,最好通过设置关于:配置

我想这样做,因为我进行了自动的半载测试(使用Selenium与Jmeter一起使用)。

答案1

您可以禁用 JavaScript 打印功能,以阻止 JS 发起的打印操作。

有两种方法可以禁用 JS 函数:

  • 设置策略以禁止该功能

  • 用虚拟函数替换它

  • 另一个选择是设置一个虚拟的系统范围打印机


选项 1:安全策略

您可以设置可配置的安全策略通过增加下面这行user.js文件(注意:在修改此文件之前必须完全关闭 Firefox):

user_pref("capability.policy.default.Window.print", "noAccess");

或者,您可以导航到about:config并添加具有相同名称和值的新字符串键。请注意,您将无法在配置 UI 中查看或删除此键。

如果您只希望在特定网站上阻止此操作,则以下方法应该有效(替换示例域):

user_pref("capability.policy.blockPrinting.Window.print", "noAccess");
user_pref("capability.policy.blockPrinting.sites", "http://example.com http://something.example.com");

这种方法的问题在于它会抛出 JS 异常,这可能会干扰 JS 执行。另一种方法,即虚拟 JS 函数,可能更安全。


选项 2:虚拟函数

你可以用虚拟 JS 函数替换打印函数,如下所示:

window.print = function(){};

此后的任何调用window.print都不会产生任何效果。您可以在所需页面上通过(例如,Greasemonkey)用户脚本执行此操作。


选项 3:虚拟打印机

第三个选项是按照您已经完成并禁用对话框,然后将系统默认打印机设置为不建议这样做。

这个问题地址在 Windows 中创建虚拟打印机。

答案2

我看不出这与 Firefox 有什么关系。这更多是关于打印作业。

您可以安装 PDF 编写器作为打印机并将其设置为默认打印机...但是,系统可能会提示您创建保存文件名等,这可能是/可能不是所希望的。

您可能能够创建一个“假”打印机(只需安装驱动程序和软件,将其设置为默认打印机,这样打印作业就不会停止)。

在测试期间关闭打印机(并记住在重新打开之前清除队列(这得到我的投票,但不确定您的具体情况)。

可能一些已经存在的“虚拟打印机”软件可能足以满足您的需要(但推荐任何软件都与此无关,所以请不要认为我没有帮助)。

相关内容