Arresto utente da utilizzare “Print Screen” chiave / “Print Screen” della tastiera per qualsiasi pagina Web

StackOverflow https://stackoverflow.com/questions/3130983

Domanda

Attualmente sto facendo un progetto, in cui ho bisogno di fermare l'utente di prendere l'istantanea di qualsiasi pagina web, per la quale egli può usare la "Stampa Stamp" / "Printscreen" chiave disponibile in uno qualsiasi dei normali tastiere.

Ho cercato di trovare la sua soluzione, ma invano. Se possibile, ho bisogno di prendere in considerazione il " Screengrab " add-on del browser Firefox, fermando anche.

Ogni aiuto è molto apprezzato, e sto usando PHP (come linguaggio server-side) e jQuery per il mio progetto.

È stato utile?

Soluzione

È possibile disabilitare schermo non afferrare dal browser Web, sarebbe possibile solo con l'installazione di software aggiuntivo sul PC dell'utente.

Ci sono alcuni IRM (Information Rights Management) strumenti a disposizione che lo fanno per esempio proteggendo chiamate API di Windows / DirectX e anche monitorare la memoria video come Oracle IRM o come la tecnologia IRM di Microsoft .

In particolare quest'ultimo potrebbe essere di interesse in quanto v'è anche una aggiuntivo Rights Management per Internet Explorer .

Ma, come altri già detto, qualsiasi / tecnologia DRM IRM è polemica e si dovrebbe capire che il più delle volte limiterà o infastidire gli utenti.

Altri suggerimenti

io odio la frase "non è possibile". Ecco tutte le soluzioni combinate per aiutarvi a:

1- È possibile prendere la soluzione da Haluk:

<script type="text/javascript"> $(document).ready(function() {
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        $("body").hide();
      }

    }); }); 
</script>

Tuttavia, si nasconde il corpo, ma è già "stampato" per appunti. Si può sparare un altro evento che copiare un testo negli appunti, come si può vedere su questa risposta "Modifica a partire dal 2016" Fare clic sul pulsante copia negli appunti utilizzando jQuery , è qualcosa di simile a questo:

function copyToClipboard() {
  // Create a "hidden" input
  var aux = document.createElement("input");
  // Assign it the value of the specified element
  aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
  // Append it to the body
  document.body.appendChild(aux);
  // Highlight its content
  aux.select();
  // Copy the highlighted text
  document.execCommand("copy");
  // Remove it from the body
  document.body.removeChild(aux);
  alert("Print screen desabilitado.");
}

$(window).keyup(function(e){
  if(e.keyCode == 44){
    copyToClipboard();
  }
}); 

Questo bloccherà una parte del problema. Se centro l'utente su un altro oggetto fuori questa finestra egli sarà in grado di prendere screenshot. ** Ma c'è un'altra soluzione a questo pure, semplicemente disabilitare il corpo buco quando la finestra di sfocata get. soluzione completa, dal vostro caro amico brasiliano:

function copyToClipboard() {
  // Create a "hidden" input
  var aux = document.createElement("input");
  // Assign it the value of the specified element
  aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
  // Append it to the body
  document.body.appendChild(aux);
  // Highlight its content
  aux.select();
  // Copy the highlighted text
  document.execCommand("copy");
  // Remove it from the body
  document.body.removeChild(aux);
  alert("Print screen desabilitado.");
}

$(window).keyup(function(e){
  if(e.keyCode == 44){
    copyToClipboard();
  }
}); 

$(window).focus(function() {
  $("body").show();
}).blur(function() {
  $("body").hide();
});

Ecco l'esempio di lavoro:

 Qui provo a unfocus la finestra, sul unfocus mi nascondo contenuti e mostrare modale

Questo non è possibile.

Per fortuna, questa idea oltraggiosa non è possibile implementare in modo affidabile, né il "disable schermo afferrare" una parte né "le estensioni di Firefox disabilitazione di utente" l'uno. E anche se lo fosse, come punti @kbok nel suo commento di cui sopra, non hanno una destro per fare questo.

L'unico modo per proteggere il contenuto online è leggi sul copyright - menzionare quelli è abbastanza spesso di persone spaventare da un uso improprio esso! -. O non mostrare a tutti

Prova questo

$(document).keyup(function(e){
  if(e.keyCode == 44) return false;
});

La speranza funziona

È possibile modificare il contenuto degli appunti utilizzando JavaScript o Flash. Questo aiuta già un po '.

Come @Sjoerd detto, questo non è possibile.

Se è le immagini che si desidera proteggere, io vi suggerisco per immagini di qualità ad esempio display inferiore che sono invece filigranata e visualizzare solo i non filigranata quelli di alta qualità al momento opportuno.

Ma sì ... Se si desidera che siano impossibili da copiare ... non mettere on-line.

È possibile copiare negli appunti qualcos'altro, quando l'utente clicca stampa schermo chiave. Questo è esempio e io copiare testo utente.

<p id="test">test</p>

function copyToClipboard(elementId) {

  // Create a "hidden" input
  var aux = document.createElement("input");

  // Assign it the value of the specified element
  aux.setAttribute("value", document.getElementById(elementId).innerHTML);

  // Append it to the body
  document.body.appendChild(aux);

  // Highlight its content
  aux.select();

  // Copy the highlighted text
  document.execCommand("copy");

  // Remove it from the body
  document.body.removeChild(aux);

}
$(document).ready(function(){
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        copyToClipboard('test');
      };
    });
});

Non v'è alcun metodo diretto per fare questo, però, c'è un modo per proteggere il contenuto il più possibile da scrn prnt.

L'idea è questa:

  1. rendere i contenuti inaccessibile se java è disabilitato, e utilizzare alcuni script come Artista di Scope Protezione copia.

  2. Rilevazione prnt scrn invierà un messaggio per l'amministratore con il utente registrato informazioni, questo significa che il contenuto riservato che è accessibile solo ai membri possono beneficiare di questo. l'invio di IP indirizzi suona come una buona idea, ma vieta l'IPS non è, in modo da non guadagnare un sacco di beneficio da questo.

  3. Una volta fuori dalla finestra del tuo sito web, il contenuto sarà coperto con una sovrapposizione che non può essere rimosso a meno che non si arriva al tuo sito web e attivare esso, che si ri-attivare il codice PRNT scrn di rilevazione di cui al punto precedente.

  4. Se il dispositivo è un cellulare, è possibile nascondere le immagini, o come nel mio caso, reindirizzamento ad una "Siamo spiacenti" pagina.

  5. e altre estensioni simili navigatore web Strumento di cattura e add-on sarà inutile. Tranne uno strumento che ho trovato chiamato pagina piena di cattura dello schermo

    • questo contenuto cattura strumento web dopo circa 3 secondi dalla pressione del pulsante, che è il tempo sufficiente per respingere la sovrapposizione e tornare al suo sito web
    • una buona inversione di tendenza è quello di iniziare un contatore quando "respingere overlay" si fa clic che avrà bisogno di 5 secondi o più, vale a dire. dopo questa estensione ha già preso una fotografia istantanea
  6. C'è anche un metodo indiretto per evitare la cattura video, ancora lavorando su di esso, sarà postare qui o nel mio blog.

  7. Se il contenuto è davvero così ne vale la pena, gli utenti potrebbe ancora catturarlo usando le loro macchine fotografiche, ci potrebbe essere un metodo anche per questo! Ma ho SILL bisogno di fare qualche ricerca prima di parlarne.

Io aggiornerò questo post nel mio blog per altre tecniche che ho usato / utilizzerà per una maggiore protezione. Si prega di verificare questo quiz (ancora in fase di sviluppo) per una demo.

Perché vuoi per impedire lo schermo di stampa?

Se è alcune foto che si desidera proteggere, si potrebbe desiderare di metterlo in bassa risoluzione, e comprendono una sorta di marchio di copyright di programmazione in PHP.

Credo che sia praticamente.

Ecco un'altra soluzione:

<script type="text/javascript"> $(document).ready(function() {
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        $("body").hide();
      }

    }); }); </script>

Questo è simile a @ soluzione ZX12R. Il vantaggio è questo codice funziona anche se la schermata di stampa cattura software è uno strumento 3rd party (ad es SnagIt).

È possibile sostituire $("body").hide(); con qualcosa che si adatti meglio. Per esempio è possibile nascondere tutte le immagini $("img").hide(); e magari mostrare loro indietro un secondo più tardi.

Il lato negativo è che non funziona se la pagina web non è la finestra attiva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top