Handle onpaste event

by 亮 薛

HTML

<input onpaste="showEvent(event)" type="text" ></input><br>
<textarea onpaste="showEvent(event)" ></textarea><br>
<button onmousedown="pasteData(event)" >GO</button><br>

JavaScript

/* http://stackoverflow.com/questions/946534/insert-text-into-textarea-with-jquery/946556 */
var upload_url = 'http://uploader.xueliang.org/server-uploader/uploader/upload/file?appId=dev_test';

function showEvent(event) { console.log('onpaste');
    var string = "";

    var keys = [];
    for ( var key in event ) {
        keys.push( key );
    }
                       
    string += keys.sort().join("\n");
    console.log(string);
    console.log( 'clipboardData:' + event.clipboardData );
    console.log( 'pasted:' + event.clipboardData.getData('text') );
    if (event.clipboardData.files) {
    console.log('文件');
      _handleFileUpload(event.clipboardData.files);
    }
}

var _handleFileUpload = function (files) {
  if (files && files[0]) {
    var file = files[0];
    //使用FormData对象发送文件
    var formData = new FormData();
    formData.append("file", file);

    var ajaxParams = {
      url: upload_url,
      type: "POST",
      data: formData,
      processData: false,
      contentType: false,
    };
    $.ajax(ajaxParams)
      .done(function (response) {
        if (response.errors.length) {
          swal.fire({
            title: "头像上传失败",
            icon: "error",
            confirmButtonText: "我知道了",
          });
          return;
        }
        imageInput.hidden.value = response.data.url;
        KTUtil.css(
          imageInput.wrapper,
          "background-image",
          "url(" + response.data.url + ")"
        );

        KTUtil.addClass(imageInput.element, "image-input-changed");
        KTUtil.removeClass(imageInput.element, "image-input-empty");

        //   alert('上传完成,响应结果:' + JSON.stringify(response));
      })
      .fail(function (response) {
      console.info(response);
      });
  }
}

function pasteData( event ) {
    event.preventDefault();
    var pasteEvent = new Event('paste');
    pasteEvent.clipboardData = {
        getData: function() {
            return 'qweasdzxc';
        }
    };
   ...