frontend: Clipboard-Copy für den Notationstext
Button "kopieren" im Editor-Kopf kopiert den Textarea-Inhalt via navigator.clipboard.writeText (Fallback: Auswahl + execCommand) und quittiert kurz mit "kopiert ✓". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4ca2108902
commit
352b086b19
@@ -154,6 +154,15 @@
|
|||||||
}
|
}
|
||||||
.winbtn:hover{border-color:var(--or);color:var(--or)}
|
.winbtn:hover{border-color:var(--or);color:var(--or)}
|
||||||
.winbtn.active{background:var(--or);color:#fff;border-color:var(--or)}
|
.winbtn.active{background:var(--or);color:#fff;border-color:var(--or)}
|
||||||
|
.copybtn{
|
||||||
|
font-family:'IBM Plex Sans',sans-serif;
|
||||||
|
font-size:.72rem;text-transform:none;letter-spacing:0;
|
||||||
|
color:var(--muted);background:var(--card);
|
||||||
|
border:1px solid rgba(36,52,71,.2);border-radius:6px;
|
||||||
|
padding:2px 9px;cursor:pointer;
|
||||||
|
display:inline-flex;align-items:center;gap:5px;
|
||||||
|
}
|
||||||
|
.copybtn:hover,.copybtn.done{border-color:var(--or);color:var(--or)}
|
||||||
textarea{
|
textarea{
|
||||||
display:block;width:100%;min-height:380px;
|
display:block;width:100%;min-height:380px;
|
||||||
border:0;outline:none;resize:vertical;
|
border:0;outline:none;resize:vertical;
|
||||||
@@ -365,6 +374,7 @@
|
|||||||
<div class="panel editor">
|
<div class="panel editor">
|
||||||
<div class="panel-head">
|
<div class="panel-head">
|
||||||
<span>Struktur (Text)</span>
|
<span>Struktur (Text)</span>
|
||||||
|
<button type="button" class="copybtn" id="copy" title="Text in die Zwischenablage kopieren">kopieren</button>
|
||||||
<div class="winbtns" aria-label="Editor-Größe">
|
<div class="winbtns" aria-label="Editor-Größe">
|
||||||
<button type="button" class="winbtn" data-state="b" title="minimieren">—</button>
|
<button type="button" class="winbtn" data-state="b" title="minimieren">—</button>
|
||||||
<button type="button" class="winbtn" data-state="normal" title="normal">▢</button>
|
<button type="button" class="winbtn" data-state="normal" title="normal">▢</button>
|
||||||
@@ -657,6 +667,22 @@ gutter.addEventListener('pointercancel', endDrag);
|
|||||||
const showc = document.getElementById('showc');
|
const showc = document.getElementById('showc');
|
||||||
showc.addEventListener('change', render);
|
showc.addEventListener('change', render);
|
||||||
|
|
||||||
|
/* ---------- Text in die Zwischenablage kopieren ---------- */
|
||||||
|
const copyBtn = document.getElementById('copy');
|
||||||
|
copyBtn.addEventListener('click', async () => {
|
||||||
|
try{
|
||||||
|
await navigator.clipboard.writeText(src.value);
|
||||||
|
}catch(_){
|
||||||
|
src.select();
|
||||||
|
document.execCommand('copy');
|
||||||
|
src.setSelectionRange(0, 0);
|
||||||
|
src.blur();
|
||||||
|
}
|
||||||
|
copyBtn.textContent = 'kopiert ✓';
|
||||||
|
copyBtn.classList.add('done');
|
||||||
|
setTimeout(() => { copyBtn.textContent = 'kopieren'; copyBtn.classList.remove('done'); }, 1500);
|
||||||
|
});
|
||||||
|
|
||||||
applySplit(); /* Startzustand: normal, markiert die normal-Buttons aktiv */
|
applySplit(); /* Startzustand: normal, markiert die normal-Buttons aktiv */
|
||||||
src.value = INITIAL;
|
src.value = INITIAL;
|
||||||
render();
|
render();
|
||||||
|
|||||||
Reference in New Issue
Block a user