Rolf B: Eingabefeld als Button

Beitrag lesen

Hallo Gunnar,

ich dachte ich hätte eine Lösung, aber sie geht nur mit Chrome, nicht mit Firefox. Der Fuchs kopiert nur den Span, nicht den Button. Sehr merkwürdig. range.toString() ergibt bei beiden Browsern den Buttontext, aber das copy-Command ignoriert beim Fuchs die Inhalte von Buttons. Selbst dann, wenn ich ein div um den button lege und ein span hinein.

Den IE habe ich nicht getestet (weil jsFiddle und Codepen unter IE streiken).

Aber vielleicht kannst Du dem Fuchs mit einem versteckten Eingabefeld nachhelfen, in das Du den Buttontext kopierst.

<button class="click2copy">Copy me</button>
<span class="click2copy">Don't make a clickable span!</span>
document.body.addEventListener("click", click2copyListener);

function click2copyListener(event) {
  if (!event.target.classList.contains("click2copy")) return;

  // IE ab Version 9
  if (window.getSelection) {
     let selection = window.getSelection();
     let range = document.createRange();

     range.selectNode(event.target);

     selection.removeAllRanges();
     selection.addRange(range);

     document.execCommand("copy");

     selection.removeAllRanges();
  }
}

Rolf

--
sumpsi - posui - clusi