可以在ajax函数之后或内部复制文本

时间:2018-10-09 16:27:50

标签: javascript jquery ajax clipboard

我尝试了许多方法来将通过ajax调用调用的PHP函数返回的某些文本复制到剪贴板。

我尝试了2种选择:

  • 按此处所述在函数内部创建文本元素

    const copyToClipboard = str => {
      const el = document.createElement('textarea');
      el.value = str;
      el.setAttribute('readonly', '');
      el.style.position = 'absolute';
      el.style.left = '-9999px';
      document.body.appendChild(el);
      el.select();
      document.execCommand('copy');
      document.body.removeChild(el);
    };
    

    此帖子:https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f

  • ,然后是第二种方法,将可见性设置为无的输入文本放置。

在两种情况下,我都无法设置属性值,然后无法使用功能select()。正如您在我的代码中看到的那样,甚至还有js和jQuery方法来设置值,但没有希望!

$("#idStories").change(function() {


  $("#bottone").click(function(event) {
    event.preventDefault();
    var idStory2 = $("#idStory").val();
    $.ajax({
      type: "POST",
      url: "/copia",
      data: {
        "_token": "{!! csrf_token() !!}",
        "idStory": idStory2
      },
      dataType: "json",
      success: function(msg) {
        var textC = JSON.stringify(msg.txt);
        $('#xxx').val('marione');
        var el = document.querySelector("#xxx");
        //el.value='aaaaaaaaaaaaaa';
        console.log(el);
        el.select();
        document.execCommand("copy");
        alert('testo copiato');

      },
      error: function() {
        alert("Chiamata fallita, si prega di riprovare...");
      }
    });
  });
});

0 个答案:

没有答案