精华内容
下载资源
问答
  • revit二次开发里的复制粘贴

    千次阅读 2016-11-03 00:38:24
    revit二次开发里的复制粘贴
    [Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    public class cmdDeleteCopy : IExternalCommand
    {
        
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
        {
            UIDocument uiDoc 
    = cmdData.Application.ActiveUIDocument;

            Transaction ts 
    = new Transaction(uiDoc.Document, "delete");
            ts.Start();

            
    //选择一个元素
            Reference reference = uiDoc.Selection.PickObject(ObjectType.Element, "请选择第一个对象");
            
    //复制
            ElementTransformUtils.CopyElement(uiDoc.Document, uiDoc.Document.GetElement(reference).Id, new XYZ(10100));
            
    //删除
            uiDoc.Document.Delete(uiDoc.Document.GetElement(reference));

            ts.Commit();

            
    return Result.Succeeded;
        }
    }
    展开全文
  • 一、浏览器赋值粘贴 1、document.execCommand 这部分参考文档: https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand 咱们再浏览器中使用的复制大部分都是用的这个原理 2、例子: //这是一个...

    一、浏览器赋值粘贴

    1、document.execCommand

    这部分参考文档:
    https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand

    咱们再浏览器中使用的复制大部分都是用的这个原理

    2、例子:

    //这是一个点击方法,放到复制按钮上即可
     function copyArticle1() {
          const range = document.createRange();
          //这里的'copyBT 是要复制部分的id
          range.selectNode(document.getElementById('copyBT'));
    
          const selection = window.getSelection();
          if(selection.rangeCount > 0) selection.removeAllRanges();
          selection.addRange(range);
          document.execCommand('copy');
          alert("复制成功!");
          }
    

    缺点:

    1、缺点,会复制样式(比如换行)
    2、在手机端的webview页面可能会出不来
    

    二、手机端的复制

    使用第一种方法在浏览器上用的是很顺畅,但是放到安卓和ios手机里面就会有各种问题。so,继续在网上找更好的复制方法

    1、使用插件

    插件网址:https://clipboardjs.com/

    关于插件的介绍,基本使用,都可以参考这个网址

    2、实例

    (1)引入JS:

    //这里我担心加载网络上的资源会太慢,所以复制JS部分到本地,重命名为copy.js
     <script src="/m/js/copy.js"></script>
    

    (2)有复制按钮 的情况

    //在复制按钮上添加点击事件
    //data-clipboard-target  这个部分是插件特有的,里面是要复制内容部分的标签id
    <div  id="copy1"  data-clipboard-target="#copyBT" onclick="copyArticle1()">复制</div>
     <td id="copyBT">要复制的内容</td>
     //js部分
      var clipboard = new ClipboardJS('#copy1');
            clipboard.on('success', function (e) {
            //以下部分都可以打印出来
              console.info('Action:', e.action);
              console.info('Text:', e.text);
              console.info('Trigger:', e.trigger);
              alert("复制成功!");
              clipboard.destroy();
            });
    

    (3)无复制按钮的情况

    //data-clipboard-text  这部分对应的是你要复制的内容
    <td data-clipboard-text="要复制的内容"  id="copy1" onclick="copy1()">要复制的内容</td>
    //JS
     function copy1(key)
        {
            var clipboard = new ClipboardJS("#copy1");
            clipboard.on('success', function (e) {
              console.info('Action:', e.action);
              console.info('Text:', e.text);
              console.info('Trigger:', e.trigger);
              alert("复制成功!");
              clipboard.destroy();
            });
        }
    

    3、缺点

    这个复制插件有个缺点,那就是:多次点击复制,多次弹出alert

    参考链接:https://blog.csdn.net/qq_33285313/article/details/78551411

    **解释:**实践总结这是因为第一次来 this.clipboard= new Clipboard(’.acctnobtn’)的时候实例化了一次,返回上级界面第二次再次进入这一界面的时候又this.clipboard= new Clipboard(’.acctnobtn’)了一次,所以说再次点击会弹出两次 复制成功,如果每次关掉界面前不去销毁this.clipboard 这一实例的话,每次打开这一界面就会实例化 +1,所以要想解决这个问题的话必须每次关掉这一界面前要销毁这一实例

    解决方案:

    需要在每次复制完毕销毁掉clipboard对象
      clipboard.destroy();
    

    以上就是复制粘贴部分的介绍了。话说几天不写博客,界面变化真大,看起来怪怪的。

    end

    展开全文
  • ZeroClipboard2跨浏览器复制粘贴

    千次阅读 2016-07-24 21:13:52
    摘要:我们平时常用到的复制粘贴功能,在浏览器端,要想使用一个按钮来实现,使用原生js代码来实现,是困难的,幸好ZeroClipboard的出现,解决了这一尴尬的问题。ZeroClipboard2简介在前端页面设计时,按钮常常伴随...

    摘要:我们平时常用到的复制粘贴功能,在浏览器端,要想使用一个按钮来实现,使用原生js代码来实现,是困难的,幸好ZeroClipboard的出现,解决了这一尴尬的问题。

    ZeroClipboard2简介

    在前端页面设计时,按钮常常伴随着数据的提交或重置出现。然而某一次,需求是点击按钮,将后台展示在页面的特定内容复制到剪切板,这样用户就省去了选中文字并按Crtl+C的操作。这使我有机会接触并使用到了一款好的工具:ZeroClipboard2。
    ZeroClipboard2实现原理很简单:利用透明的 flash 覆盖在复制按钮上,点击 flash,将复制内容传入到 flash 中,再通过 flash 把传入的内容写到剪贴板上。
    ZeroClipboard2使用方法也简单粗暴:把 flash 和 js 放到同一路径下,然后引用 js 即可。

    ZeroClipboard2简单应用

    先看一个例子,了解一下最简单的ZeroClipboard2使用:
    可能用到的工具
    - ZeroClipboard2.2.0
    - Eclipse 4.5
    - Tomcat 7
    - JQuery 1.7.2
    - ExtJs

    如下 clip.html

    <!DOCTYPE HTML>
    <html >
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>ZeroClipboard 测试</title>
    </head>
    <body>
        文本:
        <input type="text" name="txt" id="content" value="要复制的内容" />
        <button id="copy" data-clipboard-target="content">copy</button>
        <br /><br />
        粘贴:
        <input type="text">
    </body>
    </html>
    <script type="text/javascript" src="js/ZeroClipboard.js"></script>
    <script type="text/javascript" >
    window.onload = function(){
        var clip = new ZeroClipboard(document.getElementById("copy"));
    };
    </script>

    项目的骨架:
    这里写图片描述
    使用时需要引入ZeroClipboard2所需要的文件ZeroClipboard.js和ZeroClipboard.swf文件,建议将其放入一个目录下。
    代码中用到的data-clipboard-target属性是为了指定要复制内容的id,ZeroClipboard 将依次尝试通过该元素的value、textContent、innerText属性来获取文本数据,将content的数据绑定到id为copy的button上。
    由于 Flash 本地沙箱的安全限制,以上代码如果是在本地HTML文件中被浏览器直接打开,将无法正常工作。我是用Tomcat运行的,而且如果是Eclipse默认方式打开的页面,也是不能工作的,需要在本地浏览器中打开。

    在chrom中打开:
    这里写图片描述

    点击copy,在粘贴栏中Ctrl+v,即可看到效果:
    这里写图片描述

    ZeroClipboard2与JQuery :

    实际使用时,我们很少将js代码与html代码放在一起,而是引入js文件,可能还会用到JQuery。
    改进 clip.html

    <!DOCTYPE HTML>
    <html >
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>ZeroClipboard 测试</title>
    </head>
    <body>
        文本:
        <input type="text" name="txt" id="content" value="要复制的内容" />
        <button id="copy" data-clipboard-target="content">copy</button>
        <br /><br />
        粘贴:
        <input type="text">
    </body>
    </html>
    <script type="text/javascript" src="js/ZeroClipboard.js"></script>
    <script type="text/javascript" src="js/jquery-1.7.2.js"></script>
    <script type="text/javascript" src="js/demo.js"></script>

    引入的demo.js

    $(document).ready(function(){
        var clip = new ZeroClipboard($("#copy"));
    });
    

    项目的骨架:
    这里写图片描述

    ZeroClipboard2与ExtJs:

    在生产环境中,我们使用的是ExtJs。在这个过程中,最难控制的就是何时初始化ZeroClipboard,因为ExtJs的按钮是在后期生成的,我不能很容易的添加诸如data-clipboard-target属性的方法告诉ZeroClipboard去复制什么内容,也没有一个很清楚的位置去写new ZeroClipboard()这样的逻辑,那么该如何处理呢?

    • ExtJs 应该在适当的位置初始化ZeroClipboard
      在使用ExtJS创建button时,常常使用如下方法:
    Ext.onReady(function(){   
    var buttonName = new Ext.Button({
                     id:"buttonName",
                     renderTo:Ext.getBody(),  
                     minWidth:100,   
                     handler:function(){   
                         Ext.MessageBox.show({   
                           title: '提示' ,  
                           msg: '你点击了我!' ,  
                           buttons: Ext.MessageBox.OK ,
                           fn: function(){}
                         });  
                      }  
                   });   
    });  

    那么在初始化button时,就应该考虑初始化ZeroClipboard。你可以在浏览器的console中查看初始化是否完成。
    - 在页面加载完成以后,在浏览器中应该存在ZeroClipboard对象。
    - 使用自带方法查看:ZeroClipboard.state()

    这里写图片描述
    - 如果一切顺利,可以看到ZeroClipboard.state().flash.ready的值为true.

    • 使用ZeroClipboard自带的复制方法
      有时候,我们无法给button设置data-clipboard-target属性,可以使用ZeroClipboard自带的复制方法绑定数据。

    其中setText()是最简单且常用的方法

    var clip = new ZeroClipboard($("#copy"));
    clip.setText($("#content").val());
    //可以设置3中格式,带有格式的内容粘贴到不同的程序,显示对应的效果
    clip.setText("复制的内容");
    clip.setHtml("<p>复制的内容</p>");
    clip.setRichText("{\\rtf1\n{\\b 复制的内容}}");

    还有一种通用的设置方法setData()

    clip.setData("text/plain", "复制的内容");
    clip.seData("text/html", "<p>复制的内容</p>");
    clip.setData("application/rtf", "{\\rtf1\n{\\b 复制的内容}}");

    ZeroClipboard2第一次复制不生效:

    在ZeroClipboard2与ExtJs结合使用时,我发现,每次复制的第一次不生效,需要点击第二下复制按钮,才能实现复制效果。在琢磨之后发现,我在绑定数据的时候使用的是setText()方法,而该方法设置的数据是一次性的,使用该方法设置复制数据后,只在下一次复制操作时生效。之后即使你点击复制按钮也不再执行复制,除非你再次调用setText()方法。
    解决这个问题,我们在button的回调函数中使用了的事件copy,改用setData()方法:

    clip.on("copy", function(e){
        e.clipboardData.setData("text/plain", "复制的文本")
    });
    展开全文
  • 一键复制粘贴

    千次阅读 2018-08-06 09:40:07
    一键复制粘贴功能需要用到一个轻量级的JS插件:clipboard.js。 官网地址:https://clipboardjs.com 下载到本地后,将其放入项目中,直接引用即可。具体实现代码如下: &lt;!DOCTYPE html&gt; &lt;...

    一键复制粘贴功能需要用到一个轻量级的JS插件:clipboard.js。

    官网地址:https://clipboardjs.com

    下载到本地后,将其放入项目中,直接引用即可。具体实现代码如下:

    <!DOCTYPE html>
    <html>
          <head>
    		<meta charset="UTF-8">
    		<title>一键复制粘贴</title>
    		<style>
    		.transfer {
    			width: 90%;
    			margin: 20px auto;
    			font-size: 18px;
    		}
    		.transfer button {
    			margin-top: -5px;
    			float: right;
    			margin-left: 10px;
    			background-color: rgb(3, 169, 244);
    			width: 30%;
    			height: 25px;
    			font-size: 14px;
    			color: white;
    			border: 0;
    		border-radius: 8%;
    		}
    		</style>
    	</head>
    
    	<body>
    	<div class="transfer">
    		支付宝:<span id="zfb_account">11111111111</span>
    		<button onclick="copy1()" data-clipboard-action="copy" data-clipboard-target="#zfb_account" id="copy_zfb">一键复制</button>
    	</div>
    		<div class="transfer">
    		微信:<span id="wx_account">2222222</span>
    		<button onclick="copy2()" data-clipboard-action="copy" data-clipboard-target="#wx_account" id="copy_wx">一键复制</button>
    		</div>
    		<input type="text" />
    	</body>
    
    	<script type="text/javascript" src="../js/clipboard.min.js"></script>
    	<script>
    	function copy1() {
    		var clipboard = new Clipboard('#copy_zfb');
    		clipboard.on('success', function(e) {
    		e.clearSelection(); //选中需要复制的内容
    		alert("复制成功!");
    		});
    		clipboard.on('error', function(e) {
    		alert("当前浏览器不支持此功能,请手动复制。")
    		});
    	}
    		
    	function copy2() {
    		var clipboard = new Clipboard('#copy_wx');
    		clipboard.on('success', function(e) {
    		e.clearSelection(); //选中需要复制的内容
    		alert("复制成功!");
    		});
    		clipboard.on('error', function(e) {
    		alert("当前浏览器不支持此功能,请手动复制。")
    		});
    	}
    	</script>
    
    </html>
    

     

     

     


    后续补充:

           在复制粘贴时,第二次点击就会弹出两次复制成功,第三次点击就会弹出三次,原因是每次点击后执行实例化一个clipboard对象,之前的clipboard对象并没有销毁,所以就会弹出多次。解决方法是:每次使用完成后销毁clipboard对象,这样既能解决现在的问题,也可以释放内存,优化代码。代码如下:无论复制成功或失败,都需要clipboard.destroy()。

    function copy1() {
    
           var clipboard = new Clipboard('#copy_zfb');
    
           clipboard.on('success', function(e) {
    
               e.clearSelection(); //选中需要复制的内容
    
               alert("复制成功!");
    
              clipboard.destroy();
    
           });
    
           clipboard.on('error', function(e) {
    
               alert("当前浏览器不支持此功能,请手动复制。")
    
               clipboard.destroy();
    
           });
    
        }

     注意:如果你在项目中使用了其他的前端框架或者插件,有可能会与clipboard.js插件产生冲突。解决方法,可以使用<iframe/>标签,将此部分代码放在一个新的html文件中,然后在主文件中使用<iframe/>标签引入。


    本人为JS实习生一枚,不断学习,不断进步,欢迎各位前辈批评指教。

    展开全文
  • copyUrl(data){ let url = data; let oInput = document.createElement('input'); oInput.value = url;... message: data +'已成功复制到剪切板', type: 'success' }); oInput.remove() },  
  • Android复制粘贴详解

    千次阅读 2017-05-19 10:46:26
    Android提供了一个基于剪切板的复制粘贴框架。支持字符串、复杂数据结构、文本与进制数据流,以及应用assets的剪切。只有文本可直接存储到剪切板,其他存储为content provider。剪切板支持Text、URI、Intent三种...
  • 用于复制粘贴数据的基于剪贴板的框架。 同时支持简单和复杂的数据,包括文本串、复杂的数据结构、文本和进制流数据、程序 asset。 直接从剪贴板复制粘贴简单文本。 用content provider复制粘贴复杂数据。 需要...
  •  regsvr32 Shdocvw.dll regsvr32 Shell32.dll (注意这个命令,先不用输) regsvr32 Oleaut32.dll regsvr32 Actxprxy.dll regsvr32 Mshtml.dll regsvr32 Urlmon.dll 第二个命令可以先不用输,输完这些命令后...
  • Android WebView无法调起复制粘贴

    千次阅读 2018-11-03 13:56:29
    Android WebView无法调起复制粘贴框;...系统是自带默认复制粘贴方法的,所以理论只要在OnLongClickListener中return true屏蔽,长按都会调起复制粘贴的。 最近写了个Webview发现死活都无...
  • 今天开机,想复制点东西,复制竟然都好用,右键发现“粘贴”命令一直处于灰色状态,上网划拉一圈,发现原来是windows的Rpc服务没有正常启动,在网上找了些解决方法,现转帖如下: 网上给出了三个解决方案:...
  • (一)Linux中vi的复制粘贴命令

    万次阅读 2017-07-26 21:09:08
    vi编辑器有3种模式:命令模式、输入模式、末行模式。...在命令模式中输入字幕“i”可以进入vi的输入模式编辑文件。  输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INS
  • =====转自:... ====确实可行。=====安装过程一波三折。 1.本意 在自己创建的linux用户里安装oracle。 ===因为【一般在linux的root用户安装oracle】。网上说 root用户权限太大,便于 权限管理。似
  • 在vim中快速复制粘贴多行

    千次阅读 2018-07-15 22:20:52
    在vim中快速复制粘贴多行 用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。 这样做: 1. 将光标移动到要复制的文本开始的地方,按v进入可视模式。 2. 将光标移动到要复制的文本的结束的地方,按y复制...
  • 实现点击复制粘贴功能

    千次阅读 2018-08-18 21:08:54
    并且实现点击复制功能 使用前端代码实现: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&...
  • vi的复制粘贴命令

    千次阅读 2011-03-24 16:16:00
    在GUI下: (1)可按i进入插入模式 (2)使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区 (3)然后将光标移到要...在同一编辑窗打开第二个文件,用:sp [filename] 在多个编辑文件之间切换,用Ctrl+w
  • vim的复制粘贴小结

    千次阅读 2015-04-27 09:47:58
    正在学习使用vim,前一阵想学linux,然后突然发现vim是个好东西,学习使用,今天发现,无法使用ctrl+c/ctrl+v来跟系统其它应用之间做复制粘贴,非常爽,搜了一下,发现很多人有写这个问题,试了几个,觉得这个最好...
  • vim复制粘贴以及配置总结

    万次阅读 2013-05-17 00:22:55
    两篇使用的vim复制粘贴比较高级的用法 http://www.cnblogs.com/hustcat/articles/1791371.html 用vim这么久 了,始终也知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键...
  • putty的复制粘贴

    千次阅读 2018-06-19 18:37:04
    因为复制粘贴经常使用,比重新敲入要方便许多。putty的粘贴可以配置为鼠标中键或右键,此文假设为右键。(某些环境下配置一样,对应本文中的右键和中键切换) 在windows中复制往putty中粘贴 windows中复制:...
  • 第二步:保存文件,保存也行 第三步:单击CSDN中Markdown编辑器中的 然后会出现 第四步:将EditPlus文本编译器中的内容复制进去 注意****在EditPlus中多行复制时,多行中能存在空行,换一句话就是复制的多行...
  • 二、方法、推荐第二种。 1、第一种方法 1、通过 document.execCommand('copy') 2、前端代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>...
  • 上面的写法可以看到字节数组的参数这个地方用的是available(),这个方法返回的是下一对此输入流调用的方法可以受阻塞地从此输入流读取(或跳过)的估计剩余字节数,那上面的用法就是一读完文件所有的数据,...
  • vi 多行复制粘贴、删除

    千次阅读 2011-11-02 16:48:31
    法一: 单行删除,:1(待删除行)d ...此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到9行下面。 方法2: 命令行模式下输入 6,9 co 12 复制第6行到9行之间的内容到12行后面。
  • vi 编辑器的复制粘贴

    千次阅读 2013-10-29 00:02:43
    vi编辑器有3种模式:命令模式、输入模式、末行模式...在命令模式中输入字幕“i”可以进入vi的输入模式编辑文件。  输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INS
  • 我们在进行编辑东西时经常会参考一些论坛或回答,针对图片和文字都有的html文本直接复制粘贴的话会出现文字显示重叠,或者字号异常。如果我们要重新排版的话,需要只截取文字,然后对图片下载后重新编辑。其实...
  • vi编辑器中如何复制粘贴文本

    千次阅读 2013-01-02 18:15:01
    vi中多个文件相互之间的复制粘贴功能简介  大家在vi编辑中,常常遇到想把文件A里面的一行或多行,复制到B文件里面去  (可能很多人知道怎么办),该怎么做了?  下面是几中方法:  1.如果你有多台机器,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,533
精华内容 30,613
关键字:

复制粘贴第二次就粘贴不上