Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

166
Vistas
¿Puedo evitar el cuadro de diálogo de impresión del sistema ctrl + shift + p en las ventanas del navegador?

Me gustaría usar la combinación de teclas ctrl + shift + p para abrir una paleta de comandos similar a cómo se abre en https://vscode.dev . Esto parece funcionar bien en navegadores en MacOS, sin embargo, cuando intento hacer lo mismo en Windows, se abrirá un cuadro de diálogo de impresión del sistema.

He intentado agregar un detector de eventos para 'beforeprint' pero no creo que se pueda cancelar.

 window.addEventListener('beforeprint', (event) => { event.preventDefault(); event.stopPropagation(); });

Estoy tratando de evitar el cuadro de diálogo de impresión en este controlador para la combinación de teclas

 document.addEventListener('keydown', (event) => { if (event.key === 'p' && event.shiftKey && (event.ctrlKey || event.metaKey)) { // Prevent browser print dialog event.preventDefault(); // Prevent dev tools command palette from opening event.stopPropagation(); // Do logic here } });

Este controlador parece funcionar bien en MacOS Safari y Chrome, pero no puedo replicar el comportamiento en Windows, donde abre el cuadro de diálogo de impresión del sistema.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Pude resolver este problema cambiando mi verificación de event.key === 'p' a event.keyCode === 80 . No necesitaba el controlador 'beforePrint' .

 document.addEventListener('keydown', (event) => { if (event.keyCode === 80 && event.shiftKey && (event.ctrlKey || event.metaKey)) { // Prevent browser print dialog event.preventDefault(); // Prevent dev tools command palette from opening event.stopPropagation(); // Do logic here } });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si está usando/puede usar jQuery :

 $(document).bind("keyup keydown", function(e) { if (e.ctrlKey && e.keyCode == 80) { alert("Do what ever you want here.") return false; // Stops print } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Si lo ejecuta aquí, no funcionará. Intente ejecutarlo en codepen o en otro lugar.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda