javascript - Angular: Cum să obții URL-ul copiat din clipboard?
Așadar, așa extrag textul copiat din clipboard:
const data = event.clipboardData.getData('text/html');
Dar acest cod nu funcționează dacă am copiat un URL. Datele vor fi "" goale. Nu sunt sigur de ce este diferit față de un text normal.
Cum obțin URL-ul copiat?
EDITEAZĂ
Evenimentul pe care l-am primit provine din evenimentul paste:
paste(event: ClipboardEvent) {
const data = event.clipboardData.getData('text/html');
}
Din acest element HTML (folosesc Angular):
<div
id="content"
contentEditable="true"
(paste)="paste($event)"
></div>
Răspuns #1
Nu sunt sigur ce este event în codul tău, dar poți obține date din clipboard oriunde în browserul tău prin API-ul Clipboard.
https://developer.mozilla.org/ro-RO/docs/Web/API/Clipboard/readText
const copiedData = await navigator.clipboard.readText()
Răspunsul #2
Deci, din ceea ce am citit pe acest Codepen, codul ia textContent din blocurile de citate și apoi le pune pe toate în clipboard
handleCopyClick.addEventListener('click', () => {
let text = quoteText.textContent;
let author = quoteAuthor.textContent;
navigator.clipboard.writeText(`${text} ${author}`);
});
Adaptându-l la cazul tău, codul ar arăta cam așa:
paste(event: ClipboardEvent) {
let url = urlBlock.textContent;
navigator['clipboard'].writeText(`${url}`)
}
Apreciere acestui articol FreeCodeCamp pentru inspirație. Această postare de pe SO ar putea, de asemenea, să răspundă la unele dintre întrebările tale.
