प्रकटीकरण: मैंने वह कोड लिखा था जो ट्रेलो उपयोग करता है ; नीचे दिया गया कोड वास्तविक स्रोत कोड है Trello क्लिपबोर्ड ट्रिक को पूरा करने के लिए उपयोग करता है।
हम वास्तव में "उपयोगकर्ता के क्लिपबोर्ड तक पहुंच" नहीं करते हैं, इसके बजाय हम उपयोगकर्ता को कुछ उपयोगी का चयन करके मदद करते हैं जब वे Ctrl+ दबाते हैं C।
लगता है कि आपने इसे समझ लिया है; हम इस तथ्य का लाभ उठाते हैं कि जब आप हिट करना चाहते हैं Ctrl+ C, तो आपको Ctrlपहले कुंजी को हिट करना होगा । जब Ctrlकुंजी को दबाया जाता है, तो हम एक textarea में पॉप करते हैं जिसमें वह पाठ होता है जिसे हम क्लिपबोर्ड पर समाप्त करना चाहते हैं, और इसमें सभी पाठ का चयन करते हैं, इसलिए Cकुंजी के हिट होने पर चयन बिल्कुल सेट हो जाता है। (तब हम Ctrlकुंजी को छिपाने पर टेक्सारिया छिपाते हैं )
विशेष रूप से, ट्रेलो ऐसा करता है:
TrelloClipboard = new class
constructor: ->
@value = ""
$(document).keydown (e) =>
# Only do this if there's something to be put on the clipboard, and it
# looks like they're starting a copy shortcut
if !@value || !(e.ctrlKey || e.metaKey)
return
if $(e.target).is("input:visible,textarea:visible")
return
# Abort if it looks like they've selected some text (maybe they're trying
# to copy out a bit of the description or something)
if window.getSelection?()?.toString()
return
if document.selection?.createRange().text
return
_.defer =>
$clipboardContainer = $("#clipboard-container")
$clipboardContainer.empty().show()
$("<textarea id='clipboard'></textarea>")
.val(@value)
.appendTo($clipboardContainer)
.focus()
.select()
$(document).keyup (e) ->
if $(e.target).is("#clipboard")
$("#clipboard-container").empty().hide()
set: (@value) ->
DOM में हमें मिला है
<div id="clipboard-container"><textarea id="clipboard"></textarea></div>
क्लिपबोर्ड सामान के लिए सीएसएस:
#clipboard-container {
position: fixed;
left: 0px;
top: 0px;
width: 0px;
height: 0px;
z-index: 100;
display: none;
opacity: 0;
}
#clipboard {
width: 1px;
height: 1px;
padding: 0px;
}
... और सीएसएस इसे बनाता है ताकि आप वास्तव में टैक्स्टेरिया को तब न देख सकें जब यह पॉप हो जाता है ... लेकिन यह "दृश्यमान" है जिससे इसे कॉपी किया जा सकता है।
जब आप एक कार्ड पर होवर करते हैं, तो यह कॉल करता है
TrelloClipboard.set(cardUrl)
... तो तब क्लिपबोर्ड सहायक जानता है कि Ctrlकुंजी को दबाने पर क्या चुनना है।