您的位置:首页 > 其它

防止复制的网页添加“零碎”的方法

2009-10-22 16:36 281 查看
现在有的网站为了防止其他人转帖他们的内容而不写“转帖自。。。”,在你复制它网页内容的时候会自动增加“本文来自于如鹏网”这样的额外的文字。这本来无可厚非,但是它们的原理是首先监听用户的复制事件,当复制动作发生的时候取得用户选择的内容,在内容后添加“本文来自于如鹏网”,然后在用clipboardData.setData设置新的粘贴板内容,但是clipboardData.setData只支持Text、URL两种格式,无法设置HTML格式的粘贴板内容,因此造成复制出来的内容粘贴的时候一些html格式都丢失了,比如字体颜色、表格等等,非常麻烦。
如果使用Maxthon浏览器,有如下两种解决思路:
1、思路1
(1)选中要复制的部分,点击右键选择“查看选定区域源代码”;
(2)在弹出的记事本中将文件另存为htm文件,也就是文件名中输入“1.htm”之类的带htm后缀的文件名。
(3)用浏览器打开刚才保存的htm文件,全选,复制就可以了。
2、思路2(推荐方法)
(1)选择主菜单的【工具】→【内容控制】→【禁止运行Javascript】,然后就可以任意的复制而没有“零碎”了
(2)复制完了再次选择主菜单的【工具】→【内容控制】→【禁止运行Javascript】,将【禁止运行Javascript】前的勾选去掉即可。

使用普通的IE浏览器有如下两种解决思路:
1、思路1
(1)选中要复制的部分;
(2)在地址栏中输入
javascript.:var bjSelection = document.selection;var bjTxtRange=objSelection.createRange();clipboardData.setData("text",objTxtRange.htmlText);alert("复制成功");
然后回车,这时候IE7、IE8浏览器可能会提示是否允许操作剪贴板,点击【允许访问】即可。
(3)打开记事本,Ctrl+V粘贴,然后另存为一个htm文件,也就是文件名中输入“1.htm”之类的带htm后缀的文件名。
(4)用浏览器打开刚才保存的htm文件,全选,复制就可以了。
原理就是地址栏中的javascript代码会被执行,这段代码的作用就是将选中部分的HTML拷贝到剪切板中(关于代码的详细解释参考这篇文章《 取得网页选中部分HTML的方法 》 ),由于添加“零碎”的代码没有对此进行控制(也无法控制),因此复制出来的HTML就是没有零碎的了,保存成htm再复制就带格式同时没有零碎了。

2、思路2 禁用javascript
(1)打开internat选项,选择安全标签,
(2)点击下方的自定义级别,这时会弹出安全设置对话框,拖动滚动条找到图示脚本-活动脚本,并选择禁用;
(3)再复制内容就不会有零碎了。

原理:因为添加“零碎”的原理是监听用户的复制事件,然后向复制的内容中添加“零碎”,这些逻辑都是javascript代码,我们禁用IE的javascript,这样那些代码就不会执行了。

很显然Maxthon中的两种方法和IE中的两种方法原理都是一样的,不过Maxthon的功能帮我们省了很多事情。本文出自 “CowNew开源团队” 博客,请务必保留此出处http://cownew.blog.51cto.com/413531/215124
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: