您的位置:首页 > Web前端 > JavaScript

浏览器剪切版及ZeroClipboard.js的使用

2013-11-28 01:09 519 查看
使用firefox里面的剪切版(Mozilla Firefox 25.0.1)

针对某些站点“点击复制”的功能需求,firefox需要开启“复制”功能,默认firefox是不允许复制的(不允许访问剪切版)。并且默认firefox会弹出如下提示:

您的当前浏览器设置已关闭此功能!请按以下步骤开启此功能!n新开一个浏览器,在浏览器地址栏输入'about:config'并回车。n然后找到'signed.applets.codebase_principal_support'项,双击后设置为'true'。n声明:本功能不会危极您计算机或数据的安全!
按照提示信息进行设置,重启firefox,却没有效果!!!

解决方法如下:

1)找到firefox保存个人资料的文件夹

点击“工具栏”->帮助(Help)->故障排除信息(Troubleshooting Information)->打开目录(Open Directory);

此时,firefox保存个人资料文件夹的窗口会被打开;

我的目录是,~/.mozilla/firefox/t55rz9vr.default,这个t55rz9vr.default即是你设置个人资料存放的地方

2)更改firefox的默认设置,使其允许访问剪切版

查找t55rz9vr.default下面的user.js文件,若没有,创建一个user.js;

添加如下内容至user.js

user_pref("capability.policy.policynames", "allowclipboard");

user_pref("capability.policy.allowclipboard.sites", "https://www.mozilla.org http://www.×××.com");
user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");

user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");

其中https://www.mozilla.org,http://www.×××.com,即为允许访问剪切版的站点,按需进行替换,若有多个,以空格分隔即可。
参考:
http://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data?redirectlocale=en-US&redirectslug=Profiles https://developer.mozilla.org/en-US/docs/Midas/Security_preferences 

使用ZeroClipboard.js实现站点的“点击复制”功能

ZeroClipboard JavaScript库提供了一种简单易用的方法帮助你访问剪切版。ZeroClipboard提供一个透明的flash,用于和剪切版交互,当点击页面上的“复制”按钮时,其实是这个透明的flash在起作用。你所做的只需保证该flash被正确加载即可。
ZeroClipboard.js官网及下载:https://github.com/zeroclipboard/zeroclipboard

1)我犯了一个错误

急于实现功能,匆匆在网上搜了个ZeroClipboard.js使用方法,按照步骤完成之后,总是提示:TypeError: ZeroClipboard.Client is not a constructor;
经过几番周折,回到原点,查看ZeroClipboard作者写的demo及说明文件,发现:
我看的网上教程,ZeroClipboard.js是:1.0.7,而我下载的是:1.2.3的,重要的是这两个版本初始化有点不一样!!!

2)针对最新版ZeroClipboard v1.2.3使用
<script type="text/javascript" language="javascript" src="ZeroClipboard.js"></script>
<script type="text/javascript">
function copy(){
var url=window.location.href; //获取当前url地址
var clip =  new ZeroClipboard( document.getElementById("copy_url"), {
moviePath: "ZeroClipboard.swf"
} );    //初始化
clip.setHandCursor( true );  //将光标变成手型
clip.setText(url);       //复制url参数
clip.addEventListener('complete', function (client, text) {    //复制成功执行的操作
alert('复制成功');
});

}
</script>


html如下:

<input type="button" value="点击复制" id="copy_url" onClick="copy();" onmouseover="copy()"/>


这里添加onmouseover,为了确保用户只点击一次就能够复制成功(因为有的时候,需要点击两次,冏)

(完)祝你愉快!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息