Você pode desativar a função de impressão JavaScript para evitar ações de impressão iniciadas por JS.
Existem duas maneiras de desativar uma função JS:
- Definir políticas para não permitir a função
-
Substitua por uma função fictícia
-
Outra opção é definir uma impressora de todo o sistema fictícia
Opção 1: Políticas de segurança
Você pode definir as Políticas de segurança configuráveis adicionando a seguinte linha para o arquivo user.js
(nota: o Firefox deve estar completamente fechado antes que este arquivo possa ser modificado):
user_pref("capability.policy.default.Window.print", "noAccess");
Como alternativa, você pode navegar até about:config
e adicionar uma nova chave de string com o mesmo nome e valores. Observe que você não poderá ver ou remover essa chave na interface de configuração.
Se você deseja bloquear somente isso em sites específicos, o seguinte deve funcionar (substitua os domínios de exemplo):
user_pref("capability.policy.blockPrinting.Window.print", "noAccess");
user_pref("capability.policy.blockPrinting.sites", "http://example.com http://something.example.com");
O problema com essa abordagem é que ela lançará uma exceção JS, o que pode interferir na execução do JS. O othe rapproach, uma função JS fictícia, é provavelmente mais seguro.
Opção 2: Função Dummy
Você pode substituir a função de impressão por uma função JS fictícia da seguinte forma:
window.print = function(){};
Todas as chamadas para window.print
depois disso não farão nada. Você pode executar isso na página solicitada, por exemplo, um userscript (Greasemonkey).
Opção 3: Impressora dummy
A terceira opção é fazer como você já fez e desabilitar a caixa de diálogo e, em seguida, definir a impressora padrão do sistema para uma que não faça nada. Isso não é recomendado, pois afetará todo o sistema (embora na maioria dos outros programas você possa simplesmente selecionar uma impressora diferente, isso é inconveniente).
Esta questão aborda a criação de uma impressora fictícia no Windows .