Jquery скопировать абзац в буфер обмена на рабочем столе и iOS - PullRequest
0 голосов
/ 05 января 2019

Хорошо, поэтому я пытаюсь объединить эти две функции, одна из них быстро превращает абзац в текстовую область, чтобы иметь возможность скопировать его в буфер обмена, а затем заставляет его исчезнуть. С другой стороны копирование в буфер обмена действительно работает на мобильных устройствах (особенно на устройствах 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...