मैं अपनी स्क्रिप्ट को क्लिपबोर्ड की सामग्री का पता लगाने और पृष्ठ को खोलने पर एक टेक्स्ट फ़ील्ड में पेस्ट करने का एक तरीका जानना चाहता हूं, जिसमें उपयोगकर्ता का कोई इनपुट नहीं है। यह कैसे किया जा सकता है?
मैं अपनी स्क्रिप्ट को क्लिपबोर्ड की सामग्री का पता लगाने और पृष्ठ को खोलने पर एक टेक्स्ट फ़ील्ड में पेस्ट करने का एक तरीका जानना चाहता हूं, जिसमें उपयोगकर्ता का कोई इनपुट नहीं है। यह कैसे किया जा सकता है?
जवाबों:
window.clipboardData.getData('Text')
कुछ ब्राउज़रों में काम करेगा। हालाँकि, कई ब्राउज़र जहां यह काम करते हैं, उपयोगकर्ता को यह संकेत देंगे कि वे वेब पेज को क्लिपबोर्ड तक पहुंचना चाहते हैं या नहीं।
के माध्यम से नए क्लिपबोर्ड एपीआई का उपयोग करें navigator.clipboard
। इसका उपयोग इस तरह किया जा सकता है:
navigator.clipboard.readText()
.then(text => {
console.log('Pasted content: ', text);
})
.catch(err => {
console.error('Failed to read clipboard contents: ', err);
});
या एसिंक्स सिंटैक्स के साथ:
const text = await navigator.clipboard.readText();
ध्यान रखें कि यह उपयोगकर्ता को अनुमति अनुरोध संवाद बॉक्स के साथ संकेत देगा, इसलिए कोई मज़ेदार व्यवसाय संभव नहीं है।
(नोट: यदि कंसोल से कॉल किया जाता है तो यह काम नहीं करेगा, लेकिन सीधे उपयोगकर्ता कार्रवाई की आवश्यकता होगी जैसे कि एक बटन दबाने पर, धन्यवाद @Artur)
setTimeout
फिर पेज पर क्लिक करके।
आप उपयोग कर सकते हैं
window.clipboardData.getData('Text')
IE में उपयोगकर्ता के क्लिपबोर्ड की सामग्री प्राप्त करने के लिए। हालांकि, अन्य ब्राउज़र में आपको सामग्री प्राप्त करने के लिए फ्लैश का उपयोग करने की आवश्यकता हो सकती है, क्योंकि क्लिपबोर्ड तक पहुंचने के लिए कोई मानक इंटरफ़ेस नहीं है। हो सकता है आप इस प्लगइन शून्य क्लिपबोर्ड की कोशिश कर सकते हैं
निम्नलिखित आपको चयनित सामग्री के साथ-साथ क्लिपबोर्ड को अपडेट करेगा।
कॉपी आईडी के साथ एलिमेंट आईडी को बांधें और फिर चयनित टेक्स्ट प्राप्त करें। आप पाठ को प्रतिस्थापित या संशोधित कर सकते हैं। क्लिपबोर्ड प्राप्त करें और नया पाठ सेट करें। सटीक स्वरूपण प्राप्त करने के लिए आपको "टेक्स्ट / एचएमटीएल" के रूप में टाइप करने की आवश्यकता है। आप तत्व के बजाय इसे दस्तावेज़ में बाँध भी सकते हैं।
$(ElementId).bind('copy', function(event) {
var selectedText = window.getSelection().toString();
selectedText = selectedText.replace(/\u200B/g, "");
clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData;
clipboardData.setData('text/html', selectedText);
event.preventDefault();
});