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 相关文章推荐
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
Apr 20 Javascript
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
用jquery方法操作radio使其默认选项是否
Sep 10 Javascript
js截取固定长度的中英文字符的简单实例
Nov 22 Javascript
vue多级多选菜单组件开发
Sep 08 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
Nov 14 Javascript
深入浅出webpack之externals的使用
Dec 04 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
JS开发 富文本编辑器TinyMCE详解
Jul 19 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
Feb 09 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 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
改变Apache端口等配置修改方法
2008/06/05 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Python实现二叉搜索树
2016/02/03 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
python如何删除列为空的行
2020/07/17 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
公司中层干部的自我评价分享
2014/03/01 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
Python实现科学占卜 让视频自动打码
2022/04/09 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python