「JavaScript」- 写入剪贴板、复制

function copyTextToClipboard(text) {

    // 如果支持 navigator.clipboard 时使用
    if (navigator.clipboard) {
        navigator.clipboard.writeText(text);
        return true; // 我们不理会异步,假装成功
    }

    // 当浏览器不支持 navigator.clipboard 时使用
    var textArea = document.createElement("textarea");
    textArea.value = text;

    // Avoid scrolling to bottom
    textArea.style.top = "0";
    textArea.style.left = "0";
    textArea.style.position = "fixed";

    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();

    try {
        return document.execCommand('copy');
    } catch (err) {
        return false;
    } finally {
        document.body.removeChild(textArea);
    }
}

在 Console 中,写入剪切板

Firefox

window.navigator.clipboard.writeText(123)

Promise { <state>: "rejected", <reason>: DOMException }
<state>: "rejected"
<reason>: DOMException: Clipboard write was blocked due to lack of user activation.

在 Firefox 中,需要进入 Brower Console 界面:Ctrl+Shift+J,但是这不能针对页面执行代码。

# TODO 在 Console 中,复制到剪切板
我们经常在 Console 中执行代码,以快捷地完成任务,但是复制剪切板不可用。使用 tampermonkey 勉强解决问题。

参考文献

Browser Console – Firefox Developer Tools | MDN
javascript – DOMException on calling navigator.clipboard.readText() – Stack Overflow