मैं एक ऑनलाइन टाइपिंग सॉफ्टवेयर पर काम कर रहा हूं। टाइपिंग सॉफ़्टवेयर में, सभी अच्छी तरह से चल रहे हैं, लेकिन मुझे बेईमान उपयोगकर्ताओं की समस्या है जो संभवतः पाठ को टेक्स्टरेरा में टाइप कर सकते हैं, इसकी प्रतिलिपि बना सकते हैं, फिर पृष्ठ को फिर से लोड कर सकते हैं (इसलिए टाइमर को रीसेट कर सकते हैं) और इसे सीधे चिपका सकते हैं। तो मैं evt.preventDefault();
जैसे कुछ उपयोग करने की लाइनों के साथ सोच रहा था जब जावास्क्रिप्ट C
कुंजी के साथ ctrl/cmd बटन दबाकर पता लगाता है। लेकिन फिर मुझे एहसास हुआ कि उपयोगकर्ता हमेशा Edit -> Copy
दबाकर मेनू बार तक जा सकता है। तो मैं सोच रहा था, कॉपी करने के दोनों तरीकों को अक्षम करने के लिए एक क्रॉस-ब्राउज़र विधि है?पाठ पाठ से टेक्स्ट कॉपी करने के सभी तरीकों को रोकने के लिए क्रॉस-ब्राउज़र विधि?
उत्तर
आप निम्न jQuery कोड का उपयोग करने की कोशिश कर सकते हैं:
$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
e.preventDefault();
});
आप कुछ घटनाओं को ब्लॉक कर सकते हैं, लेकिन जैसे उपयोगकर्ता व्यवहार को रोकने के संभव नहीं है। उपयोगकर्ता ब्राउज़र कंसोल के माध्यम से हमेशा डोम नोड से पाठ कॉपी कर सकते हैं। के रूप में अपने प्रश्न में सुझाव दिया,
var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; }
txtArea.onpaste = function() { return false; }
txtArea.oncut = function() { return false; }
लेकिन फिर भी, उपयोगकर्ता अन्य तरीकों से सामग्री की प्रतिलिपि कर सकते हैं:
हाँ क्योंकि हर कोई जानता है कि कैसे कंसोल को चाबुक करें और डोम – Esailija
में हेरफेर करना शुरू करें ओह डोम मैनिपुलेशन कोई समस्या नहीं है, मेरा मतलब है कि उपयोगकर्ता को समझ में नहीं आया और डीओएम हेरफेर, और केवल संपादन -> कॉपी और राइट-क्लिक -> कॉपी (राइट-क्लिक कोई समस्या नहीं है) और CTRL-C और CMD-C जैसी चीजें जानती हैं। यही वह है जो मैं मुख्य रूप से चिंता कर रहा हूं। – think123
@ think123 जो काम नहीं करता है अगर आप कट/पेस्ट/प्रतिलिपि घटनाओं से रोकें 'डीफॉल्ट() 'AFAIK – Esailija
आप शायद की तरह कुछ कर सकता है।
ईवेंट हैंडलर्स बाइंड और रोकने के इस तरह की तरह क्लिपबोर्ड समारोह:
$('textarea').on('copy paste cut drag drop', function (e) {
e.preventDefault();
});
@Downvoter, मेरे उत्तर के साथ कुछ भी गलत है? कृपया समझाएं ताकि मैं इसे बेहतर बना सकूं। – Starx
अपनी वेबसाइट लिंक – Kamal
प्रदान @ think123: मैं अपने पिछले हटाए गए प्रश्न के लिए एक समाधान है (कैसे मेरे php mysql कोड केवल एक टीडी प्रदर्शित करता है) –
ओह कि एक हल हो गया है (मुझे लगता है)। उसके लिए माफ़ करना। – think123