js能实现粘贴功能吗

不是复制 是粘贴功能 有办法实现吗?

比如在桌面一个txt文件里复制文字 然后在网页里粘贴出来

阅读 5.8k
4 个回答

应该是可以的吧,js有document.write方法,input标签可以用js改变value模仿粘贴,普通标签可以改变innerText

第三方库:clipboard.js
原生方法:document.execCommand()

当然可以了,思路就是@坏蛋jiu 说的那样子,至于例子,请看:
图片描述
托福独立写作题目类型_tpo大作文话题分类_托福教育类范文模板【小站备考】

图片描述
TPO54 Writing Integrated Writing
写作题点进去看就能找到js实现是代码例子……

大致代码如下:

html:
<div class="wright js_textarea">
    <div class="btns">
        <a id="writearea-copy">copy</a>
        <a id="writearea-cut">cut</a>
        <a id="writearea-paste">paste</a>
        <span>Word Count:<i id="writearea-wc">0</i></span>
    </div>
    <textarea name="writing_content" id="writearea"></textarea>
</div>


js:
//写作
        var $write = $(config.write.SELECT_NAME);

        //写作弹框
        $(".cssMasklayer").on("click", function() {
            $(this).removeClass("show");
            $(".cssNewPop").addClass("hide");
        });
        $(".cssBtnClose").on("click", function() {
            $(".cssNewPop").addClass("hide");
            $(".cssMasklayer").removeClass("show");
        });
        $(".cssReturn").on("click", function() {
            $(".cssNewPop").addClass("hide");
            $(".cssMasklayer").removeClass("show");
        });
        $(".jsIknow").on("click", function() {
            $(".cssNewPop").addClass("hide");
            $(".cssMasklayer").removeClass("show");
        });

        if ($write.length > 0) {
            var wrID = "writearea";

            //写作区域内容初始值

            if (typeof window.writeAreaDefaultContent === "undefined") {
                window.writeAreaDefaultContent = "";
            }

            var writeHTML = '<div class="btns"><a id="[0]-copy">copy</a><a id="[0]-cut">cut</a><a id="[0]-paste">paste</a><span>Word Count:<i id="[0]-wc">0</i></span></div><textarea name="writing_content"  id="[0]" >' + window.writeAreaDefaultContent + "</textarea>";
            $write.html(writeHTML.replace(new RegExp("\\[0\\]", "g"), wrID));

            var domE = document.querySelector("#" + wrID);
            var copy = document.querySelector("#" + wrID + "-copy");
            var cut = document.querySelector("#" + wrID + "-cut");
            var paste = document.querySelector("#" + wrID + "-paste");
            var wcount = document.querySelector("#" + wrID + "-wc");

            var saveSelStr = "";
            var temSelStr = "";
            var selStart = -1;
            var selEnd = -1;
            domE.addEventListener("keyup", function(e) {
                $(wcount).html(domE.value.replace(/\s+/g, " ").split(/[a-zA-Z]+/g).length - 1);
                canNext(getAnswer("write", $(domE)));
            });

            document.addEventListener("mouseup", function(e) {
                if (e.target.id == wrID) {
                    temSelStr = getSelectionText(e.target);
                    selStart = e.target.selectionStart;
                    selEnd = e.target.selectionEnd;
                }
            });

            copy.addEventListener("click", function() {
                saveSelStr = temSelStr;
                selStart = -1;
                selEnd = -1;
                temSelStr = "";
            });
            cut.addEventListener("click", function() {
                if (selStart != -1 && selStart != -1) {
                    saveSelStr = temSelStr;
                    var tmStr = domE.value;

                    domE.value = tmStr.substr(0, selStart) + tmStr.substr(selEnd, domE.value.length);
                    selStart = -1;
                    selEnd = -1;
                    temSelStr = "";
                } else {
                    alert("请选择区域");
                }
            });
            paste.addEventListener("click", function() {
                if (selStart != -1 && selStart != -1 && saveSelStr != "") {
                    var tmStr = domE.value;
                    domE.value = tmStr.substr(0, selStart) + saveSelStr + tmStr.substr(selEnd, domE.value.length);
                } else {
                    alert("请选择区域");
                }
            });
        } //写作 end
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题