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实现复制功能(带你出坑)的更多相关文章
- js & document.execCommand
js & document.execCommand click copy document.execCommand 已废弃 过时的 此功能已过时.尽管它可能在某些浏览器中仍然可以使用,但不建议 ...
- 华为CloudIDE免费公测,带你出坑带你飞
你的代码仓库上线了吗?是不是有时候遇到这样的问题? 只想浏览一下代码,却发现线上浏览效果不佳,高亮显示什么的都没有.而在桌面端浏览要需要先同步代码,再用桌面端的IDE打开.尤其是使用git的时候,先要 ...
- document.execCommand()函数可用参数解析
隐藏在暗处的方法-execCommand() 关键字: javascript document document.execCommand()方法可用来执行很多我们无法实现的操作. execComman ...
- JS开发备忘笔记-- Javascript中document.execCommand()的用法
document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...
- 前端复制功能的若干 -- document.execCommand()
最近涨停科技公司实习,由于backend基础太弱...强行前端了一把..搞了两周才搞下页面里copy的功能,期间有些琐碎,恐忘,记录在此. 目前copy主流有四种方式:ZeroClipboard,Cl ...
- Javascript中document.execCommand()的用法
document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...
- 简易博客编辑器:玩转document.execCommand命令
xhEditor是基于jQuery开发的跨平台轻量可视化XHTML编辑器,基于LGPL开源协议发布.今天就把它山寨一下. 上几张图,看看效果: 先做出菜单部分:发现是一张背景图片,所以用图片映射的方法 ...
- JavaScript:document.execCommand()的用法
document.execCommand()的用法小记 一.语法 execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令.处理Html数据时常用. 如下格式:document.ex ...
- Zero Clipboard js+swf实现的复制功能使用方法
开发中经常会用到复制的功能,在 IE 下实现比较简单.但要想做到跨浏览器比较困难了.本文将介绍一个跨浏览器的库类 Zero Clipboard .它利用 Flash 进行复制,所以只要浏览器装有 Fl ...
随机推荐
- FDMEMTABLE将修改后的数据序列为JSON
FDMEMTABLE将修改后的数据序列为JSON procedure TForm1.Button3Click(Sender: TObject); var memtable: TFDMemTable; ...
- 关于FMDatabase executeQuery的问题
如果你碰到这个问题,请查看idx的值,并查看SQL语句中第6个字段的值有问题(从0开始),比如你给的值是NSInteger会报错,需要将其转成NSString.
- JAVA分库分表的实现方案
分库分表的实现方案无非2种:1.本地,2.远程.而在本地一般有2种实现(1.业务代码级别 2.jdbc级别), 其中jdbc级别的本地代理方案的代表有:当当开源的 shardingsphere,远 ...
- Jmeter远程测试
11.3 详解JMeter远程测试(1) 2012-04-09 09:14 温素剑 电子工业出版社 字号:T | T 综合评级: 想读(7) 在读(2) 已读(0) 品书斋鉴(0) 已有9 ...
- .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
本随笔续接:.NET 同步与异步之锁(ReaderWriterLockSlim)(八) 之前的随笔已经说过.加锁虽然能很好的解决竞争条件,但也带来了负面影响:性能方面的负面影响.那有没有更好的解决方案 ...
- 【SqlServer】Sqlserver中的DOS命令操作
输入osql ?查看是否支持当前版本,如果是SQL Server 2005以上用Sqlcmd , 以下用Osql连接数据库(a)Osql -S localhost -U username -P p ...
- C#面试题(转载)
原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. .NET和C#有什么区 ...
- awk的些许小技巧
一句话kill掉名为navimain进程的shell脚本(利用awk的列操作能力) `ps|grep navimain | awk 'NR==1 {print $1}'`
- 6种常见的Git错误以及解决的办法
我们都会犯错误,尤其是在使用像Git这样复杂的东西时.如果你是Git的新手,可以学习如何在命令行上开始使用Git.下面介绍如何解决六个最常见的Git错误. Photo by Pawel Janiak ...
- SNF快速开发平台WinForm-CS甘特图
我们在做项目当中会经常用到按时间进度查看任务,其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况. 甘特图包含以下三个含义: 1.以图形或表格的形式显示活动: 2.通用 ...