首页 > 解决方案 > iOS 12.2 上以编程方式复制 JavaScript 的问题

问题描述

我有一个 Phonegap 应用程序,可以单击一个按钮,将一些文本添加到剪贴板。这一直有效,直到我将手机升级到 iOS 12.2。

我已经在其他装有 iOS 12.2 的 iPhone 上进行了测试,问题也存在。在 12.2 的模拟器中,它似乎工作正常,所以我不太确定问题出在哪里。

我在此处添加了代码,以便您了解它是如何工作的。

有人知道出了什么问题吗?

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.readOnly = true;
    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
};

})(窗口、文档、导航器);

标签: javascriptiossafari

解决方案


推荐阅读