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 相关文章推荐
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
jquery在IE、FF浏览器的差别详细探讨
Apr 28 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
浅谈js中对象的使用
Aug 11 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
微信小程序新手教程之页面打开数量限制
Mar 03 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
ES6的循环与可迭代对象示例详解
Jan 31 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
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
回顾Javascript React基础
2019/06/15 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python map和reduce函数用法示例
2015/02/26 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Python 合并拼接字符串的方法
2020/07/28 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
工程总经理工作职责
2013/12/09 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
Python基础学习之奇异的GUI对话框
2021/05/27 Python
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL