Verwenden Sie execCommand (Javascript), um ausgeblendeten Text in die Zwischenablage zu kopieren

Ich versuche, in die Zwischenablage zu kopieren, ohne Flash zu verwenden. Ich plane, mithilfe von @ auf Flash zurückzugreife ZeroClipboard wenn der Browser nicht mit dem Javascript-Ansatz kompatibel ist.

Ich habe einen onClick-Listener für die Schaltfläche, der wie folgt aussieht:

$(buttonWhereActionWillBeTriggered).click(function(){ 
    var copyDiv = document.getElementById(inputContainingTextToBeCopied);
    copyDiv.focus();
    document.execCommand('SelectAll');
    document.execCommand("Copy", false, null);
}

und ein Eingabefeld wie folgt:

<input type="text" name="Element To Be Copied" id="inputContainingTextToBeCopied" value="foo"/>

Dies funktioniert derzeit wie erwartet, aber das Design erfordert, dass das Feld mit dem zu kopierenden Text unsichtbar ist. Ich habe beide einstellungen ausprobierttype="hidden" undstyle="display: none" keiner von denen ist gelungen. Beides führt dazu, dass die Schaltfläche die gesamte Seite auswählt und den gesamten Inhalt in die Zwischenablage des Benutzers kopiert.
Ich bin relativ zuversichtlich, dass die Ursache nicht browserbasiert ist, sondern nur, dass ich auf Chrome (Version 43.0.2357.134 (64-bit)) unter Mac OS X 10.10.4 teste.

Gibt es eine Möglichkeit, die Funktionalität beizubehalten, wenn die <Eingabe> sichtbar ist, während sie ausgeblendet wird? oder wenn nicht eine alternative Route, die ich nehmen kann?

Mir sind ähnliche Fragen bekannt, von denen keine mein Problem lösen, entweder weil ich zu alt bin, kein Javascript benutze oder weil sie nicht in das jeweilige Szenario passen. Hier ist eine gute Antwort für alle mit ähnlichen, weniger spezifischen Problemen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage