支持多浏览器(IE、Firefox、Opera)剪切板复制函数修正版_javascript技巧

需要注意的是,firefox下必须要设置下
signed.applets.codebase_principal_support
在 firefox浏览器地址栏输入about:config 过滤器中输入signed.applets.codebase_principal_support双击设置为true即可支持。因为firefox默认情况下是不支持脚本操作剪切板的。
因为只是什么都不支持的浏览器才是最安全的浏览器。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

下面是ie firefox 读取剪切板中的信息的方法

复制代码 代码如下:

function getClipboard()
{
if (window.clipboardData)
{
return (window.clipboardData.getData('text'));
}
else
{
if (window.netscape)
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
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");
clip.getData(trans, clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
trans.getTransferData("text/unicode", str, len);
}
catch (e)
{
alert("您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试,相对路径为firefox根目录/greprefs/all.js");
return null;
}
if (str)
{
if (Components.interfaces.nsISupportsWString)
{
str = str.value.QueryInterface(Components.interfaces.nsISupportsWString);
}
else
{
if (Components.interfaces.nsISupportsString)
{
str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
}
else
{
str = null;
}
}
}
if (str)
{
return (str.data.substring(0, len.value / 2));
}
}
}
return null;
}

下面是 ie,firefox下 写入剪切板的代码

复制代码 代码如下:

copy2Clipboard=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'之后重试,相对路径为firefox根目录/greprefs/all.js");
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);
}
}

具体的应用,可以参考的代码。

时间: 2024-11-08 19:28:49

支持多浏览器(IE、Firefox、Opera)剪切板复制函数修正版_javascript技巧的相关文章

js剪切板应用clipboardData实例解析_javascript技巧

目前仅有高版本的 Chrome 浏览器支持这样直接粘贴,其他浏览器目前为止还无法粘贴,不过火狐和ie11浏览器在可编辑的div中能够粘贴截图的图片也是base64位和Chrome利用clipboardData的效果是一样的,只是在火狐和ie11浏览器中目前还无法实现类似用clipboardData直接获取图片的base64数据,它是自带的直接进去img数据. 完整实例: <!DOCTYPE HTML> <html lang="en-US"> <head&g

js 剪切板应用clipboardData详细解析_javascript技巧

注意:ie7,与ie8 对网页有个复制的权限,需在"安全"中的"自定义级别"的脚本中设置 clipboardData 对象 提供了对剪贴板的访问. 三个方法 1.clearData(sDataFormat) 删除剪贴板中指定格式的数据. 2.getData(sDataFormat) 从剪贴板获取指定格式的数据. 3.setData(sDataFormat, sData) 给剪贴板赋予指定格式的数据.返回 true 表示操作成功. 例子 <script lang

如何取消电脑IE浏览器中允许对剪切板进行访问的提示

  1.运行IE浏览器,并打开Internet选项; 2.切换到"安全"选项卡,点击"自定义级别"按钮; 3.在设置列表中找到"脚本",在"允许对剪切板进行编程访问"中将"提示"改成"启用"并点击确定; 4.最后在弹出的警告窗口中点击是即可. 安装以上方法完成设置后就可以取消电脑IE浏览器中允许对剪切板进行访问的提示.

重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件

原文:重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 [源码下载] 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 剪切板 Clipboard - 剪切板 复制/粘贴文本 复制/粘贴html 复制/粘贴图片 复制/粘贴文件 示例1.演示剪切板的基本应用Clipboard/D

兼容主流浏览器的JS复制内容到剪贴板_javascript技巧

现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个通杀所有浏览器的js复制内容到剪贴板的方案: 这个方案是一个最流行的方法: 著名的Clipboard Copy解决方案 利用一个clipboard.swf作为桥梁,复制内容到剪贴板. 原理是:创建一个隐藏的flash文件,同时给给flash的变量FlashVars 赋值"clipboard=..",

js判断浏览器类型,版本的代码(附多个实例代码)_javascript技巧

在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子.浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本. JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的.在许多情况下,值判断出浏览器类型之后,还需判

兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码_javascript技巧

在编写处理xml的网页时,经常为浏览器兼容性头疼.于是我将常用的xml操作封装为函数.经过一段时间的改进,现在已经很稳定了,用起来很舒服. 函数有-- xml_loadFile:xml同步/异步加载. xml_transformNode:xsl转换. xml_text:节点的文本. selectSingleNode:根据XPath选择单个节点. selectNodes:根据XPath选择多个节点. 全部代码(zyllibjs_xml.js)-- 复制代码 代码如下: /* zyllibjs_xm

js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本_javascript技巧

因为ie10-ie11的版本问题,不再支持document.all判断,所以ie判断函数要重新写了 function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; } 第一种,只区分浏览器,不考虑版本 复制代码 代码如下: function myBrowser(){     var userAgent = navigator.

firefox火狐浏览器与与ie兼容的2个问题总结_javascript技巧

1:rules与cssRules区别: 复制代码 代码如下: function addCSSRule(css,key,value){ //var css = document.styleSheets[document.styleSheets.length-1]; if(navigator.userAgent.indexOf("Firefox")>0 ) { css.insertRule(key+"{"+value+"}", css.cssR