Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)


Posted in Javascript onNovember 22, 2013
<!doctype html public "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="YES!B/S!" />
<meta name="Description" content="This page is from http://Justinyoung.cnblogs.com" />
<title>CSS/Javascript demo</title>
<script type="text/javascript" language="javascript" >
    function test(){
        copyToClipboard("dddd");
    }
    copyToClipboard = function(txt) {
if(window.clipboardData) {
   window.clipboardData.clearData();
   window.clipboardData.setData("Text", txt);
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试");
return false;
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
</script>
</head>
<body>
 <button onclick="test();">复制到粘贴板</button>
</body>
</html>

说明:Firefox的默认安全限制不允许通过JavaScript复制到剪贴板,需要提示用户修改Firefox的设置。修改方法是打开"about:config"将"signed.applets.codebase_principal_support"设置为"true"。

Javascript 相关文章推荐
jQuery DIV弹出效果实现代码
Jul 03 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
Jan 27 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
Dec 30 Javascript
asm.js使用示例代码
Nov 28 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
js QQ客服悬浮效果实现代码
Dec 12 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
Nov 02 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
利用node.js如何搭建一个简易的即时响应服务器
May 28 Javascript
深入理解vue $refs的基本用法
Jul 13 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
微信小程序实现图片滚动效果示例
Dec 05 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 #Javascript
用正则表达式替换图片地址img标签
Nov 22 #Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
Nov 22 #Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 #Javascript
javascript禁用Tab键脚本实例
Nov 22 #Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
Nov 22 #Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 #Javascript
You might like
PHP5/ZendEngine2的改进
2006/10/09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
AngularJS语法详解
2015/01/23 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
python放大图片和画方格实现算法
2018/03/30 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
python如何查看安装了的模块
2020/06/23 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
自考毕业自我鉴定范文
2013/10/27 职场文书
测试工程师岗位职责
2013/11/28 职场文书
班级入场式解说词
2014/02/01 职场文书
文员岗位职责范本
2014/03/08 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
大四学生个人总结
2015/02/15 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA