当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 单击按钮复制定义好的内容到剪贴板

Javascript
jQuery生成asp.net服务器控件的代码
javascript 实现的完全兼容鼠标滚轴缩放图片的代码
JavaScript学习笔记(十七)js 优化
使用SyntaxHighlighter实现HTML高亮显示代码的方法
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
利用jQuery 实现GridView异步排序、分页的代码
jquery.lazyload 实现图片延迟加载jquery插件
Lazy Load 延迟加载图片的 jQuery 插件
jquery 插件实现图片延迟加载效果代码
javascript小数计算出现近似值的解决办法
jquery1.4后 jqDrag 拖动 不可用
jquery 应用代码 方便的排序功能
选择TreeView控件的树状数据节点的JS方法(jquery)
jquery 图片Silhouette Fadeins渐显效果
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
javascript 同时在IE和FireFox获取KeyCode的代码
js 键盘记录实现(兼容FireFox和IE)
javascript 函数速查表
jQuery AnythingSlider滑动效果插件
经典海量jQuery插件 大家可以收藏一下

Javascript 中的 单击按钮复制定义好的内容到剪贴板


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 414 ::
收藏到网摘: n/a

我们通常会通过单击按钮的操作,将定义好的内容直接复制到剪贴板

对于用户来说点了按钮直接【Ctrl】+【V】就可以了。

其实该功能的核心原理就是用到了window子对象clipboardData的一个方法:setData()

其语法是:clipboardData.setData(sDataFormat, sData)

参数sDataFormat表示要复制的内容的格式;参数sData则要复制的内容。
返回值:复制成功返回true;失败返回false。

比如:

clipboardData.setData("text","www.ruanchen.com")
<a href="#" onclick=javascript:clipboardData.setData("text","www.ruanchen.com")>
单击当前链接文本表示复制了内容到本地剪贴板,只需在【Ctrl】+【V】就能显示出定义的内容
</a>

以上是定义了固定的值复制到本地剪贴板,可用在诸如“将本页转阅给朋友”类似的功能需求中,以达到快捷转达网址或信息的目的。

此外,我们还会遇到这样的一些情况:当我们在某网站复制了一段内容之后,在粘贴下来时,发现不自觉的多了一行信息,该信息即是由内容复制到剪贴板同时增加的一行信息。

也就是说我们写入到剪贴板中的值除了拷贝的选择内容外,还有自己定义的值,那么如何获得“拷贝的选择内容”,这就需要使用到 document.selection.createRange() 方法,其中该方法配合 execCommand,在 HTML 编辑器中很有用,比如:文字加粗、斜体、复制、粘贴、创建超链接等。

<textarea cols=40 rows=10>
www.ruanchen.com 软晨学习网
www.tangshanseo.cn 唐山SEO
www.xiaoduzi.com 健康减肥网
</textarea> <br>
<input type=button value="先选择文本框文本再单击本按钮" onclick=alert(document.selection.createRange().text)>
</form>

所以,应用了document.selection.createRange().text就能重新定义剪贴板中的值了。

选择复制本段文本,然后粘贴到文本编辑器中查看是不是多了一些附加信息。

<script type="text/javascript">
document.body.oncopy=function(){
 event.returnValue=false;
 var t=document.selection.createRange().text;
 var s="有关单击按钮将内容复制到剪贴板的原文内容地址: "+location.href;
 clipboardData.setData('Text',t+'\r\n\r\n'+s+'\r\n');
}
</script>

需要注意的是,该脚本执行要位于页面最低部。