方案一:利用“window.clipboardData”

代码示例:

if (window.clipboardData) {

window.clipboardData.clearData();

window.clipboardData.setData("Text", txt)

};

问题:这个方案只对IE浏览器适用。

方案二:利用“Components.interfaces.nsIClipboard”

代码示例:

if (window.netscape) {

try {

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

} catch (e) {

if (flag == 0) {

alert("You are using the Firefox browser, copy the function browser refuse!

\nPlease in the browser address bar enter'about:config' and Enter \n and set'signed.applets.codebase_principal_support' to 'true'");

} else {

alert("你使用的是Firefox 浏览器,复制功能被浏览器拒绝!\n请在浏览器地址栏输入'about:config'

并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");

}

}

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);

}

问题:这个方案只适合Firefox,同时也有安全问题,如果想使用这个方法,必须手动开启Firefox的一个配置:signed.applets.codebase_principal_support。方法是:在地址栏输输入“about:config”,设置“signed.applets.codebase_principal_support”为true,默认该项是false。

把这个方案和方案一结合,可以解决IE和Firefox浏览器的相对兼容。

方案三:利用隐藏的flash

代码示例:

var clipboardswfdata;

var setcopy_gettext = function(){

clipboardswfdata = document.getElementById('data').value;

window.document.clipboardswf.SetVariable('str', clipboardswfdata);

}

var floatwin = function(){

alert('copy success, ' + clipboardswfdata);

}

点此复制到剪贴板

body {font-size:12px;}

.clipinner {position:relative;}

.clipboardswf {position:absolute; left:0; top:0;}

利用一个clipboard.swf作为桥梁,复制内容到剪贴板。原理是:创建一个隐藏的flash文件,通过onmouseover 事件往 flash 中传递数据。

演示地址:

http://www.lsproc.com/demo/clipboard/demo.html

这个方法兼容IE、Firefox、Opera、Chrome、 Safari和Flash10,真可谓万能的解决方案。浏览器Flash的安装率非常高,这几乎是一个完美的解决方案。

php 复制到剪切板,兼容多种浏览器”复制到剪贴板”的解决方案相关推荐

  1. 将内容复制到剪切板兼容主流浏览器的解决方案

    html : <body><div class="demo-area"><label for="copy-input">输入 ...

  2. 微信小程序之一键复制到剪切板

    最近在开发小程序项目里遇到一个小难题-----一键复制 在网页开发里 我们可以引用大牛封装好的复制插件,比如无flash插件clipboard.js适用移动端,pc端------- 言归正装,打开微信 ...

  3. Android 复制到剪切板功能

    Android 复制到剪切板功能-------------- 1.复制到剪切板会使用ClipboardManager,在SDK版本为11前后使用的包不一样.一个是android.text(已弃用),一 ...

  4. 网页内容复制粘贴(三种方案 兼容多种浏览器)

    tags: js ctrl+c 网页内容复制粘贴(三种方案 兼容多种浏览器) 对网页上的内容实现复制粘贴的功能 痛点:需要支持多种不同的浏览器 主要有IE,Firefox IE浏览器下的解决方案: w ...

  5. 监听浏览器复制粘贴事件开箱即用的复制到剪切板

    监听键盘ctrl+c ctrl+v area.onkeydown = (event) => { if (event.ctrlKey) {if (event.keyCode == 67) {ale ...

  6. 关于使用js复制到剪切板的兼容性写法

    // 复制到剪切板 async function copyHandler(text) {try{if(navigator.clipboard && window.isSecureCon ...

  7. html数据复制到剪切板

    一.原生js指令复制 function copyUtil(info) {var $textArea = $('<textarea></textarea>');$textArea ...

  8. uniapp 复制到剪切板 四端适配

    记得很早的时候实现过一次,只不过那次是 纯 vue 实现的 h5+,但是想用在 uniapp中 还是不行.有些地方不能用!不过在 App 中的方法还是可以使用的: Vue 复制内容到系统剪切板_唐僧的 ...

  9. 微信小程序复制到剪切板及换行问题

    wxml <textarea type="text" v-model="copyContent" placeholder="请输入内容" ...

  10. js框架jquery实现的幸运大转盘抽奖程序代码,兼容多种浏览器(Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Chrome)

    博客目录 js框架jquery实现的幸运大转盘抽奖程序代码 实现功能截图 系统功能 使用技术 代码 写在最后 js框架jquery实现的幸运大转盘抽奖程序代码 本系统实现了一个幸运转盘抽奖,兼容多种浏 ...

最新文章

  1. mn之间的回文数c语言,c语言描述回文数的三种算法
  2. java代码如何能运行起来_Java代码如何运行
  3. windows mobile设置插移动卡没反应_ETC不用时,能不能把卡拔下来
  4. 真不值!技术大神,却只是阿里P6...
  5. 前端学习(639):undefine和null
  6. 查看Linux服务器运行级别命令,linux命令1、如何查看当前的Linux服务器的运行级别?...
  7. sbt 地址修改备注
  8. [Erlang 0026] 目前最优的Erlang IDE
  9. 计算机控制技术课程设计温度控制系统,计算机控制技术课程设计PWM温度自动控制系统的设计...
  10. 2017全国省市区县 json数据
  11. 低代码平台表单引擎技术方案选型
  12. 洛谷P4556 [Vani有约会]雨天的尾巴
  13. 77. Combinations
  14. 非常简单的四子棋【java编写】
  15. 第一章 ESP32 PlatformIO IED开发环境搭建
  16. python计算学习,《统计学习方法》的Python实现:(1)感知机
  17. 什么是软路由和硬路由,两者的区别有什么?
  18. 洛谷算法题单:模拟与高精度例题(上)
  19. zTree的简单用法
  20. 在 cfx-solver 的 monitor 中'normal force' 与 'tangential force' ,'normal momen' 与 'tangential moment' 意义

热门文章

  1. 10个优秀个android项目,精选|快速开发
  2. 峰值信噪比公式_关于 PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比的个人理解
  3. 图像的峰值信噪比(PSNR)的计算方法
  4. 独家 | 利用滴滴出行数据透视中国城市空间发展(附视频PPT)
  5. 连续变量的描述统计与SPSS实现
  6. Python在线编辑器推荐
  7. 步进电机正反转实验_电机正反转电路图讲解
  8. 云课堂让职业院校Web前端教学更简单
  9. mac安装旺旺启动台找不到_如何正确安装和卸载Mac软件?
  10. excel函数:VLOOKUP+IF多条件匹配取值(数组函数)