<script src="dist/clipboard.min.js"></script>
<p> Paket: npm install clipboard --save
und dann import Clipboard from 'clipboard';
<input>
-Tag auf der Seite. Wir müssen den darin enthaltenen Inhalt kopieren. Wir können Folgendes tun:
<input id="demoInput" value="hello world"> <button class="btn" data-clipboard-target="#demoInput">点我复制</button>
import Clipboard from 'clipboard'; const btnCopy = new Clipboard('btn');
<button>
-Tag Ein data-clipboard-target
-Attribut wird hinzugefügt und sein Wert ist der <input>
des zu kopierenden id
. Wie der Name schon sagt, wird der Inhalt vom gesamten Tag kopiert.
<input>
kopieren, sondern den Wert einfach direkt aus der Variablen abrufen. Wenn wir dies in Vue
tun können:
<button class="btn" :data-clipboard-text="copyValue">点我复制</button>
import Clipboard from 'clipboard'; const btnCopy = new Clipboard('btn'); this.copyValue = 'hello world';
// 复制成功后执行的回调函数 clipboard.on('success', function(e) { console.info('Action:', e.action); // 动作名称,比如:Action: copy console.info('Text:', e.text); // 内容,比如:Text:hello word console.info('Trigger:', e.trigger); // 触发元素:比如:<button class="btn" :data-clipboard-text="copyValue">点我复制</button> e.clearSelection(); // 清除选中内容 }); // 复制失败后执行的回调函数 clipboard.on('error', function(e) { console.error('Action:', e.action); console.error('Trigger:', e.trigger); });
clipboard
auf einer einzelnen Seite verwenden, um Um das Lebenszyklusmanagement eleganter zu gestalten, denken Sie daran, es nach Gebrauch btn.destroy()
zu zerstören.
<p>clipboard
Ist es nicht sehr einfach zu bedienen? Ist es jedoch nicht elegant genug, zusätzliche Bibliotheken von Drittanbietern nur für eine copy
-Funktion zu verwenden? Was sollten wir zu diesem Zeitpunkt tun? Verwenden Sie dann native Methoden, um dies zu erreichen.
MDN
definiert ist:
die es einem ermöglicht, Befehle auszuführen, um den Inhalt der zu manipulieren Bearbeitbarer Bereich.<p> bedeutet, dass Sie Befehle ausführen können, um den Inhalt des bearbeitbaren Bereichs zu bearbeiten. Beachten Sie, dass es sich um den bearbeitbaren Bereich handelt.
bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)<p>Die Methode gibt einen
Boolean
-Wert zurück, der angibt, ob der Vorgang erfolgreich war.
aCommandName
: Stellt den Befehlsnamen dar, z. B.: copy
, cut
usw. (weitere Befehle finden Sie unter Befehle); > aShowDefaultUI
false
: Einige Befehle erfordern zusätzliche Parameter, die im Allgemeinen nicht verwendet werden; >aValueArgument
Die Kompatibilität dieser Methode war vorher nicht sehr gut, aber glücklicherweise ist sie mittlerweile grundsätzlich mit allen Mainstream-Browsern kompatibel und kann auch auf mobilen Endgeräten verwendet werden. <input>
Manchmal gibt es kein <input id="demoInput" value="hello world"> <button id="btn">点我复制</button>
const btn = document.querySelector('#btn'); btn.addEventListener('click', () => { const input = document.querySelector('#demoInput'); input.select(); if (document.execCommand('copy')) { document.execCommand('copy'); console.log('复制成功'); } })
<input>
bearbeitbaren Bereich <p>
arbeiten kann, was bedeutet, dass mit Ausnahme von Eingabefeldern wie und <p> , diese Methode kann nicht verwendet werden. execCommand()
In dieser Zeit müssen wir das Land retten. <input>
<textarea>
Es kann als Erfolg bei der Rettung des Landes durch eine Kurve gewertet werden. Bei der Verwendung dieser Methode traten mehrere Fallstricke auf. <p>Aufgetretene Fallstricke<button id="btn">点我复制</button>
const btn = document.querySelector('#btn'); btn.addEventListener('click',() => { const input = document.createElement('input'); document.body.appendChild(input); input.setAttribute('value', '听说你想复制我'); input.select(); if (document.execCommand('copy')) { document.execCommand('copy'); console.log('复制成功'); } document.body.removeChild(input); })
input.setAttribute('readonly', 'readonly');
Kann nicht kopiert werden <input>
<p>这个问题是由于 input.select()
在ios下并没有选中全部内容,我们需要使用另一个方法来选中内容,这个方法就是 input.setSelectionRange(0, input.value.length);
。
const btn = document.querySelector('#btn'); btn.addEventListener('click',() => { const input = document.createElement('input'); input.setAttribute('readonly', 'readonly'); input.setAttribute('value', 'hello world'); document.body.appendChild(input); input.setSelectionRange(0, 9999); if (document.execCommand('copy')) { document.execCommand('copy'); console.log('复制成功'); } document.body.removeChild(input); })
相关推荐:
JS复制内容到剪切板的实例代码(兼容IE与火狐)_javascript技巧
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板_jquery
JavaScript实现复制内容到粘贴板代码_javascript技巧
Das obige ist der detaillierte Inhalt vonJavaScript kopiert den Inhalt in den Implementierungscode der Zwischenablage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!