2012-04-09 10 views
7

Bir çevrimiçi yazım yazılımı üzerinde çalışıyorum. Yazma yazılımında her şey iyi gidiyor ancak metinleri metin kutusuna yazabilen, kopyalayabilen, ardından sayfayı yeniden yükleyebilen (bu nedenle zamanlayıcıyı sıfırlayan) ve gizli olarak yapıştıran sahtekâr kullanıcıların sorunu var. Yani javascript, C anahtarıyla birlikte ctrl/cmd düğmesinin basılmasını algıladığında evt.preventDefault(); gibi bir şey kullanma çizgileri üzerinde düşünüyordum. Ama sonra, kullanıcının her zaman Edit -> Copy'a basmak için menü çubuğuna gidebileceğini fark ettim. Yani merak ediyordum, her iki kopyalama yöntemini devre dışı bırakacak bir çapraz tarayıcı yöntemi var mı?Bir metin yazımından tüm metin kopyalama yöntemlerini önlemek için çapraz tarayıcı yöntemi?

+0

think123 @ sitenizin linkini – Kamal

+0

sağlar: benim php mysql kod yalnızca bir td görüntüler nasıl oluyor (önceki silinen soru için bir çözümümüz var –

+0

Biri çözüldü (Sanırım). Bunun için üzgünüm. – think123

cevap

4
aşağıdaki jQuery kodu kullanmayı deneyebilirsiniz

:

$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) { 
    e.preventDefault(); 
}); 
+0

ah, düzenleme için teşekkürler. – selo

+0

Kodun ('kopyala yapıştırın kes' bölümündeki bölümün ne işe yarar?] Sorusunu sorabilir miyim? Teşekkürler! – think123

+0

bind işlevi, olay işleyicilerinizi öğelerinize ekler. "Kopyalama kesimi kesildi", hangi olayların ekli işlevi tetiklemesi gerektiğini belirtir. – selo

1

Bazı olayları engellemek, ancak bu tür kullanıcı davranışını engelleyen mümkün değildir olabilir. Kullanıcı her zaman DOM düğümünden gelen metni tarayıcı konsolu aracılığıyla kopyalayabilir. Sorunuza önerildiği üzere,

var txtArea = document.getElementById("YourTextAreaId"); 
txtArea.oncopy = function() { return false; } 
txtArea.onpaste = function() { return false; } 
txtArea.oncut = function() { return false; } 

Ancak bu durumda bile kullanıcı, diğer aracılığıyla içeriği kopyalayabilirsiniz:

+0

Evet, çünkü herkes nasıl yapılacağını bildiği için jQuery etiketini ekleyeceğim – Esailija

+0

Oh manipüle etmeye başlayın. DOM manipülasyon bir sorun değil, kullanıcı anlamasaydı ve DOM manipülasyonu, ve sadece Düzenle -> Kopyala ve sağ tıklat -> Kopyala (sağ tıklama sorunu değil) ve CTRL-C ve CMD-C gibi şeyleri biliyordu. Ben esas olarak endişeleniyorum. – think123

+1

@ think123 '' cutDefault() 'yı kesme/yapıştırma/kopyalama olaylarından çalıştırırsanız çalışmaz. AFAIK – Esailija

2

Belki böyle bir şey yapabilirdi. Böyle gibi

0
olay işleyicileri Bind

ve önlemek pano fonksiyonu:

$('textarea').on('copy paste cut drag drop', function (e) { 
    e.preventDefault(); 
}); 
+0

@Downvoter, Cevabımla ilgili bir sorun mu var? Lütfen bunu açıklayabileceğimi açıkla. – Starx

İlgili konular