Einführung
In diesem Lab werden wir die Clipboard API in JavaScript erkunden und lernen, wie man Text asynchron auf die Zwischenablage kopiert. Du wirst lernen, wie man die Verfügbarkeit der API überprüft und sie verwendet, um Text auf die Zwischenablage zu schreiben. Am Ende dieses Labs wirst du eine solide Vorstellung davon haben, wie man die Clipboard API in deinen JavaScript-Anwendungen nutzt.
Funktion zum Kopieren eines Strings auf die Zwischenablage
Um einen String auf die Zwischenablage zu kopieren, verwenden Sie die copyToClipboardAsync-Funktion. Die Funktion gibt ein Promise zurück, das aufgelöst wird, wenn der Inhalt der Zwischenablage aktualisiert wurde. Hier sind die Schritte:
- Überprüfen Sie, ob die Clipboard API verfügbar ist, indem Sie mithilfe einer
if-Anweisung überprüfen, obNavigator,Navigator.clipboardundNavigator.clipboard.writeTextwahr sind. - Wenn die Clipboard API verfügbar ist, verwenden Sie
Clipboard.writeText(), um den angegebenen Wertstrauf die Zwischenablage zu schreiben. - Geben Sie das Ergebnis von
Clipboard.writeText()zurück, das ein Promise ist, das aufgelöst wird, wenn der Inhalt der Zwischenablage aktualisiert wurde. - Wenn die Clipboard API nicht verfügbar ist, lehnen Sie das Promise mit einer passenden Fehlermeldung mithilfe von
Promise.reject()ab. - Wenn Sie ältere Browser unterstützen müssen, verwenden Sie
Document.execCommand()anstelle vonClipboard.writeText(). Sie können mehr dazu im CodeausschnittcopyToClipboarderfahren.
Hier ist die copyToClipboardAsync-Funktion:
const copyToClipboardAsync = (str) => {
if (navigator && navigator.clipboard && navigator.clipboard.writeText) {
return navigator.clipboard.writeText(str);
}
return Promise.reject("The Clipboard API is not available.");
};
Um die Funktion zu verwenden, rufen Sie copyToClipboardAsync mit dem String auf, den Sie kopieren möchten, als Argument auf, wie folgt:
copyToClipboardAsync("Lorem ipsum"); // 'Lorem ipsum' kopiert auf die Zwischenablage.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Copy to Clipboard Async" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.