将文本写入剪贴板

Dav*_*ker 8 javascript clipboard google-chrome-extension

我想通过Chrome扩展程序将一些文本变量写入剪贴板,当用户按下快捷键时会发生这种情况.除写入剪贴板外,我已经完成了所有部分.

我使用以下关键字搜索整个StackOverflow:"[google-chrome-extension]剪贴板"

所以我想说,我看到所有相关的:

  • 添加clipboardReadclipboardWrite许可(已完成)
  • 在a <textarea>,call document.execCommand('Copy'); 或中 添加文本document.execCommand("Copy", false, null);

即使我在StackOverflow上尝试了我的扩展textarea,我将我的文本插入到StackOverflow的wmd-input部分textarea,然后选择它,然后调用copy.什么都没有,什么都没有......

一切都在尝试.请指教......我错过了什么?

use*_*802 10

基于/sf/answers/888554551/

function directCopy(str){
    //based on https://stackoverflow.com/a/12693636
        document.oncopy = function(event) {
    event.clipboardData.setData("Text", str);
    event.preventDefault();
        };
    document.execCommand("Copy");
        document.oncopy = undefined;
}
Run Code Online (Sandbox Code Playgroud)


Sud*_*han 5

您可以尝试以下代码,它将文本写入剪贴板

作为一个例子,我写信Sample给剪贴板

产量

在此输入图像描述

的manifest.json

清单文件是所有Chrome扩展的关键,确保它具有所有权限

 {
  "name": "Copy to ClipBoard Demo",
  "description" : "This is used for demonstrating Copy to Clip Board Functionality",
  "version": "1",
  "browser_action": {
    "default_popup": "popup.html"
  },
  "permissions":["clipboardWrite"],
    "manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)

popup.html

一个简单的浏览器操作HTML文件,带有输入框和按钮

<html>

    <head>
        <script src="popup.js"></script>
    </head>

    <body>
        <input type="text" id="text" placeHolder="Enter Text To Copy"></input>
        <button id="copy">Copy</button>
    </body>

</html>
Run Code Online (Sandbox Code Playgroud)

popup.js

它将内容复制<input>到剪贴板

function copy() {

    //Get Input Element
    var copyDiv = document.getElementById('text');

    //Give the text element focus
    copyDiv.focus();

    //Select all content
    document.execCommand('SelectAll');

    //Copy Content
    document.execCommand("Copy", false, null);
}

//Add Event Listeners to Button Click
document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("copy").onclick = copy;
});
Run Code Online (Sandbox Code Playgroud)

要么

function copy(){

    //Get Input Element
    document.getElementById("text").select();

    //Copy Content
    document.execCommand("Copy", false, null);
}

//Add Event Listeners to Button Click
document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("copy").onclick = copy;
});
Run Code Online (Sandbox Code Playgroud)