2015-09-30 15 views
7

) ile istemi yanıtladığında IE'de sessizce başarısız olur. Güvenlik düzeyi, IE'de (Edge & 11'de test edildiğinde) en az "Orta" olarak ayarlanmışsa Bir execCommand ('copy') komutuyla, tarayıcı size, sayfanın panonuzu işlemesine izin vermeniz için istekte bulunup bulunmadığını sorar.execCommand ('copy') kullanıcı, "Don't allow" (İstemese İzin Ver) '(

Sorunum, 'İzin ver' seçeneğini tıklatırsanız, execCommand ('copy') hala true değerini döndürür. Ayrıca, hiçbir hata atılmaz.

Bu kullanıcı yanıtını nasıl yakalayabilirim?

+0

Bu gerçekten garip bir hatadır - şey şu ki, sayfayı yenilerseniz, tekrar izin vermediğinizde yanlış geri döner. –

cevap

0

Bu daha eski bir sorudur, ancak bu konuya kendim rastladığımdan beri olacağım.

Yaptığım şey, IE'nin document.execCommand('paste') yöntemini desteklediği gerçeğini kullanmaktı. Bu kopyalanmış materyali gizli bir girdiye yapıştırabilir ve kopyalanması gereken içeriğe karşı kontrol edebilirsiniz.

Bir kullanıcı Panonun manipüle edilmesine izin vermişse, yapıştırılan içerik ve kopyalanan içerik aynı olacaktır. Aksi halde, olmayacaklar. Bunun gibi bir şey:

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 
} 
İlgili konular