Хорошо, поэтому я пытаюсь объединить эти две функции, одна из них быстро превращает абзац в текстовую область, чтобы иметь возможность скопировать его в буфер обмена, а затем заставляет его исчезнуть. С другой стороны копирование в буфер обмена действительно работает на мобильных устройствах (особенно на устройствах iOS).
// Original copy to clipboard function
function copyToClipboard(elementId) {
var text = $(elementId).clone().find("br").prepend("\r\n").end().text();
element = $("<textarea>").appendTo("body").val(text).select();
document.execCommand("copy");
element.remove();
}
Функцию, которая работает для iOS, можно найти здесь: Заставьте копировать-вставку буфера обмена на устройствах iphone
//My attempt to marry the two...
var copyToClipboard = function(element) {
var text = $(element).clone().find("br").prepend("\r\n").end().text();
element = $("<textarea>").appendTo("body").val(text).select();
var textarea = document.getElementById(element);
var isiOSDevice = navigator.userAgent.match(/ipad|iphone/i);
if (isiOSDevice) {
var editable = textarea.contentEditable;
var readOnly = textarea.readOnly;
textarea.contentEditable = true;
textarea.readOnly = false;
var range = document.createRange();
range.selectNodeContents(textarea);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
textarea.setSelectionRange(0, 999999);
textarea.contentEditable = editable;
textarea.readOnly = readOnly;
} else {
textarea.select();
}
document.execCommand(\'copy\');
element.remove();
}
Мои элементы для копирования ..
<!-- test from example -->
<textarea id="foo">TEst</textarea>
<button onclick="copyToClipboard(\'foo\')">Copy text</button>
<!-- what I'm actually trying to copy -->
<p contenteditable="true" id="spiffy_social_copy">Title</br>Description</br>#hashtags</p>
<button onclick="copyToClipboard(\'spiffy_social_copy\')"></button>