@Smi_ed

Как настроить Clipboard под iOS?

Есть код который работает за исключением iOS

//php
<div class="current-id clearfix" onclick="copyToClipboard('#current-id')">


//js
function copyToClipboard(element) {
    var $temp = $("<input>");
    $("body").append($temp);
    $temp.val($(element).text()).select();
    document.execCommand("copy");
    $temp.remove();
}


И есть код который работает под iOS

//js
window.Clipboard = (function(window, document, navigator) {
    var textArea,
        copy;

    function isOS() {
        return navigator.userAgent.match(/ipad|iphone/i);
    }

    function createTextArea(text) {
        textArea = document.createElement('textArea');
        textArea.value = text;
        document.body.appendChild(textArea);
    }

    function selectText() {
        var range,
            selection;

        if (isOS()) {
            range = document.createRange();
            range.selectNodeContents(textArea);
            selection = window.getSelection();
            selection.removeAllRanges();
            selection.addRange(range);
            textArea.setSelectionRange(0, 999999);
        } else {
            textArea.select();
        }
    }

    function copyToClipboard() {        
        document.execCommand('copy');
        document.body.removeChild(textArea);
    }

    copy = function(text) {
        createTextArea(text);
        selectText();
        copyToClipboard();
    };

    return {
        copy: copy
    };
})(window, document, navigator);

Clipboard.copy('text to be copied');


Как его адаптировать чтобы вместо статичного 'text to be copied' копировалось динамичное значение '#current-id'?
  • Вопрос задан
  • 491 просмотр
Пригласить эксперта
Ответы на вопрос 1
@timokins
Самое простое:
Clipboard.copy(document.getElementById('current-id').innerText);


или
textArea.value = text;
замените на
textArea.value = document.querySelector(text).innerText;

и используйте
Clipboard.copy('#current-id');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы