使用javaScript进行移动时,将文本从剪贴板粘贴到textarea中

时间:2017-10-13 12:43:55

标签: javascript dom

我正在尝试将数据从剪贴板粘贴到textarea

<textarea id="mytextarea"></textarea>

<script type="text/javascript">
    tinymce.init({
        selector: '#mytextarea',
        plugins: "paste",
        paste_data_images: true
    });

    function handlePaste (e) {
        var clipboardData, pastedData;

        // Stop data actually being pasted into div
        e.stopPropagation();
        e.preventDefault();

        // Get pasted data via clipboard API
        clipboardData = e.clipboardData || window.clipboardData;
        pastedData = clipboardData.getData('Text');

        // Do whatever with pasteddata
        var paste = document.getElementById('mytextarea');
        paste.innerText = pastedData;
    }

    document.getElementById('mytextarea').addEventListener('mouseenter', handlePaste);
</script>

但没有发生任何错误。我找到了很多答案,但我没有解决我的问题

1 个答案:

答案 0 :(得分:2)

我相信Chrome只能在处理/** Table columns */ columns = [ ..., ..., ..., ]; /** List of columns to display in which order */ displayedColumns = this.columns.concat(['myExtraColumn']); 事件时访问clipboardData。所以你必须要监听该事件才能访问clipboardData。

更改您的事件侦听器以侦听paste事件,然后您可以使用处理程序中的clipboardData执行任何操作:

paste

您可以在以下小提琴中看到这一点:

https://jsfiddle.net/x3v8bhhr/

我添加了第二个document.getElementById('mytextarea').addEventListener('paste', handlePaste);。当您尝试粘贴到第一个textarea时,clipData会被拦截,而是放在第二个textarea中。