Necesito escribir una página que no permita al usuario ver el código. Para abrir el menú contextual, quiero usar el evento JS. Para abrir la consola web, quiero usar esto: https://sindresorhus.com/devtools-detect/ y cerrar la página. ¿Cómo atrapar el ahorro? ¿Es suficiente para capturar Ctrl+S?
No, la captura de ctrl + s solo resolverá el caso en el que el usuario use un atajo de teclado (asegúrese de recordar que es cmd + s para Mac). Todavía obtendrán el cuadro de diálogo Guardar página web si usan el File Menu o la acción "Guardar como" del menú contextual. Nunca he oído hablar de una forma de atraparlos.
Nunca podrá evitar que el usuario vea su código, si el navegador puede descargarlo y ejecutarlo, el usuario puede verlo, ya sea a través de curl , un rastreador de paquetes o DevTools.
Lo mejor que puede hacer es ofuscar su código, que cualquier persona con suficientes habilidades podrá convertir en código no ofuscado.
Podemos escuchar keydown. Si se presionan las teclas ctrlKey y S, haga el trabajo. PreventDefault impide que se abra el cuadro de diálogo Guardar página.
document.addEventListener('keydown', (e) => { if (e.ctrlKey && e.key === 's') { e.preventDefault(); console.log('pressing ctrl+s') } });¿Pero evitar que un usuario vea su código? Esa es una historia diferente. Podemos detectar Ctrl+S, pero no evitar que alguien vea su código.