jquery 复制到剪贴板javascript不工作在移动的设备.什么问题?

kyxcudwk  于 2022-12-22  发布在  jQuery
关注(0)|答案(2)|浏览(354)

下面的代码不能在移动设备上运行。但是可以在桌面上运行。这里的问题是什么?

$(document).ready(function()
{
  copy();
})

function copy() {
  var txt = document.getElementById("result");
  navigator.clipboard.writeText(txt.innerText);    
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="result">copy text</div>
c0vxltue

c0vxltue1#

你看到浏览器兼容性了吗?

如果它不在上面,尝试捕获异常:

<script type="application/javascript">

    $(document).ready(function()
    {
      copy();
    })

      function copy() {
      var txt = document.getElementById("result");
      navigator.clipboard.writeText(txt.innerText)
      .then(() => {
        alert("successfully copied");
      })
      .catch(() => {
        alert("something went wrong");
      });
    }
</script>
koaltpgm

koaltpgm2#

我正在回答我自己的问题,因为我找到了一种干净的方法来做这件事。我找到了一个更好的jQuery库来做这项工作。
仅引用此库:
https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.4.0/clipboard.min.js
然后,需要复制的文本应转到“数据剪贴板文本”

<button id="btnCopyToClipboard" class="btn btn-secondary" data-clipboard-text="@Model.OutPutText">Copy below text</button>

然后在脚本标记中包含以下内容

<script type="application/javascript">
$(function() {
    new Clipboard('#btnCopyToClipboard');
});
</script>

就这样。没有兼容性问题。图书馆会做的。

相关问题