欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JS document.execCommand实现复制功能

发布时间:2023/12/3 javascript 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JS document.execCommand实现复制功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转载自  JS document.execCommand实现复制功能

最近项目中需要实现功能:点击button,复制input框的值;

我使用的是 document.execCommand('copy')的方法;

但是很郁闷的是,始终实现不了功能;代码如下

HTML代码

(v-model是vue框架中的双向数据绑定,不懂的请移步vue文档)

<input id='input_url' v-model='product_url' disabled type="text">

JS代码

var input = $('#input_url'); input.select(); document.execCommand("Copy");

然后就郁闷了,就这么几行代码,为啥不行呢?JS和网上写的一模一样啊??

现在来解释为啥失败,踩了几个小时的坑

不能实现的原因:

  • input框不能有disabled属性
  • 根据第一条扩展,input的width || height 不能为0;
  • input框不能有hidden属性

意思就是,input框要在正常的编辑状态下,暂且这么解释吧;

解决方案:

因为业务逻辑上input框确实不能编辑,所以disabled属性是必须要的;

那我用另一个input框展示相同的数据,然后设置opacity=0;这样就不可见了;(注意这里用hidden也是不行的)

但是新增的input还是占有空间,所以再来个粗暴的样式 position: absolute;这样就脱离了文档流;

JS代码不变,修改HTML如下:

<input id='input_url' v-model='product_url' style='opacity: 0;position: absolute;' type="text"> <input v-model='product_url' disabled type="text">

 

总结

以上是生活随笔为你收集整理的JS document.execCommand实现复制功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。