मैं एक एक्सटेंशन बना रहा हूं जिसके लिए क्लिपबोर्ड पर कॉपी करने की आवश्यकता है, लेकिन मैं 18 अलग-अलग कार्य नहीं करना चाहता जो एक ही चीज़ (काफी ज्यादा) करते हैं।
यह वह कार्य है जिसे मैंने लिखा था:
function copyS1_1() {
var letter_to_copy = document.getElementById('textarea-S1-1');
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
function copyS1_2() {
var letter_to_copy = document.getElementById('textarea-S1-2');
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
प्रत्येक फ़ंक्शन को 'सेक्शन' के लिए 'कॉपीएस#_#' कहा जाता है, फिर उस सेक्शन में नंबर। मैं इनमें से 18 नहीं चाहता, इसलिए मैं इसे 3 कार्यों तक सरल बनाने का एक तरीका ढूंढ रहा हूं (प्रत्येक अनुभाग के लिए एक, वहां 3 है)।
5 जवाब
आप इसे टेम्प्लेट शाब्दिक और फ़ंक्शन तर्कों के साथ कर सकते हैं।
function copyFuncForAny(num1, num2) {
var letter_to_copy = document.getElementById(`textarea-S${num1}-${num2}`);
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
copyFuncForAny(1, 1);
copyFuncForAny(1, 2);
आप एक पैरामीटर जोड़ सकते हैं:
function copyS1(id) {
var letter_to_copy = document.getElementById('textarea-S1-' + id);
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
ऐसे करें इस्तेमाल:
copyS1(1)
copyS1(2)
...
document.getElementById('Sec1_BTN1').addEventListener('click', copyS1(1));
का उपयोग कर रहा हूं, यह पेज लोड पर ईवेंट को ट्रिगर कर रहा है। कोई विचार?
इसका सरल बस इस तरह आपका अपना कार्य
function copyText(id) {
var letter_to_copy = document.getElementById(id);
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
जितनी बार चाहें उतनी बार इसका इस्तेमाल करें।
आप स्ट्रिंग को तर्क के रूप में क्यों पास नहीं करते?
function copyS1_1(id) {
var letter_to_copy = document.getElementById(id);
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
textarea-S1-1 यहां इसका एकमात्र परिवर्तनशील मान है, इसलिए आप इसे एक सामान्य फ़ंक्शन के लिए पैरामीटर के रूप में पास कर सकते हैं
function copyS1(textarea) {
var letter_to_copy = document.getElementById(textarea);
letter_to_copy.select();
navigator.clipboard.writeText(letter_to_copy.value);
}
और इसे अनुसरण के रूप में उपयोग करें
var copyS1_1 = copyS1('textarea-S1-1')
var copyS1_2 = copyS1('textarea-S1-2')