提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

原文发表于2009年4月12日 标题是《解除某些网站文字不能复制的问题》

经常在查阅某些网站时会出现文字无法复制的问题,其实是这些网站通过JavaScript脚本做了一定限制,我们可以通过下面的代码解除这个限制:

javascript:with(document.body){oncontextmenu='';ondragstart='';onselectstart='';onselect='';oncopy='';onbeforecopy='';onmouseup='';}void(0);

以上代码为 一行 ,具体用法是打开那个不能复制文字的网页,然后全选地址栏网址,删除全选的网址,再将这段代码粘贴到地址栏中,注意前面不要留空格(即必须以javascript开头),最后回车。然后你就会发现网页的内容就能复制了。

2011年3月29日更新

这段代码的原理是什么呢?我们先谈谈如何限制或者禁止浏览者复制网页上的文字,正常的防止浏览者复制文字,我们肯定是想到禁用用户的某些特定的操作,比如鼠标右键,选择,复制等等,而这些操作对应了相应的脚本事件,只要给这些事件加上一个方法,让其返回false就可以“吃”掉这个操作了,一般的禁止复制的脚本代码如下:

with(document.body) {
  oncontextmenu=function(){return false}
  ondragstart=function(){return false}
  onselectstart=function(){return false}
  onbeforecopy=function(){return false}
  onselect=function(){document.selection.empty()}
  oncopy=function(){document.selection.empty()}
}

无非就是禁止了类似于oncontextmenu(鼠标右键菜单)、onselectstart和onselect(禁止选择)等等,所以找到问题的根本,就可以用上面讲的办法清空这些return false的函数了,清空后就可以复制了。

写在最后

禁止用户复制网页上的文字还有禁止鼠标右键什么的是极其糟糕的做法,违反了用户体验的根本原则,这样做让用户容易反感进而不再回访你的网站,访客忠诚度也是衡量一个网站成功与否的重要标志之一,所以要留住用户,设计必须以用户为中心。更何况这些小伎俩也很容易破解,比如另存网页,禁用脚本,查看源代码等等,所以还是不要做限制为好。

2012年4月9日更新

通常情况下我们可能不想这么复杂的解决这类问题,比如说某网页文字无法复制,网页无法右击等等限制,我们可不希望慢慢的找到这段代码,然后选中,然后复制,然后粘贴,然后按回车,简直太麻烦了。接下来我将介绍个简单的利用上面这段代码的办法,那就是对下面这个链接右击,在菜单中选择添加到收藏夹:

点击解除网页限制

这样,下次再遇到受限的网页页面时就可以直接打开收藏夹,然后点下你添加的“点击解除网页限制”就可以了,怎么样,够简单的吧。