2015-09-30 37 views
7

Se il livello di sicurezza è impostato su almeno 'Medio' in IE (testato in Edge & 11) quando si esegue un comando execCommand ('copia'), il browser ti chiede, chiedendoti se vuoi consentire alla pagina di manipolare i tuoi appunti.execCommand ('copia') non riesce automaticamente in IE quando l'utente risponde al prompt con 'Non consentire'

Il mio problema è che se si fa clic su "Non consentire", execCommand ('copia') restituisce ancora true. Inoltre, non vengono lanciati errori.

Come posso rilevare e gestire questa risposta utente?

+0

Questo è un bug davvero strano - il fatto è che, se si aggiorna la pagina, essa restituisce false quando non si consente nuovamente. –

risposta

0

Questa è una domanda più vecchia, ma interverrò da quando mi sono imbattuto in questo problema da solo.

Quello che ho dovuto fare era usare il fatto che IE supporta il metodo document.execCommand('paste'). Detto questo, puoi incollare il materiale copiato in un input nascosto e confrontarlo con il contenuto che avrebbe dovuto essere copiato.

Se un utente ha consentito la manipolazione degli Appunti, il contenuto incollato e il contenuto copiato saranno gli stessi. Altrimenti, non lo saranno. Qualcosa del genere:

var copySuccess, 
    canPaste; 

inputElementToCopy.select(); 
copySuccess = document.execCommand('copy'); 

inputElementToPaste.select(); 
canPaste = document.execCommand('paste'); 

if (canPaste) { 
    copySuccess = inputElementToPaste.value === inputElementToCopy.value; 

    // Since IE supports paste, 
    // if user allowed clipboard: copySuccess === true 
    // else: copySuccess === false 
}