Ryongyon!

这世界上假绅士太多,缺少训练有素的流氓

· 实践教程 · · 1036次浏览

一段代码禁止网站内容被复制

前言

有的时候我们不想网站的内容或者说文章的内容被复制,我们就得需要禁止网站内容被选中,复制。那么 这一段代码可以帮助你去实现,不过。这并不能完全的阻止网站内容被“搬走”,因为稍微有点技术能力的人,或者愿意花点时间的人一样可以通过比如“查看网站源码”等方法来获得内容。

禁止网站内容被选中

<script type="text/Javascript">
<!--
document.oncontextmenu=function(e){return   false;};
document.onselectstart=function(e){return   false;};
//-->
</script>
<style>
body{
-moz-user-select:none;
}
</style>
<script type="text/Javascript"><!--
if (top.location != self.location)top.location=self.location;
// --></script>
<noscript><iframe src=*.html></iframe></noscript>

自动给复制内容加入声明版权信息

<script>
document.body.addEventListener('copy', function (e) {
    if (window.getSelection().toString() && window.getSelection().toString().length > 10) {
        setClipboardText(e);
    }
}); 
function setClipboardText(event) {
    var clipboardData = event.clipboardData || window.clipboardData;
    if (clipboardData) {
        event.preventDefault();
        var htmlData = ''
            + '著作权归作者所有。<br>'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。<br>'
            + '作者:<?php $this->author() ?><br>'
            + '链接:' + window.location.href + '<br>'
            + '来源:<?php $this->options->siteUrl(); ?><br><br>'
            + window.getSelection().toString();
        var textData = ''
            + '著作权归作者所有。\n'
            + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
            + '作者:<?php $this->author() ?>\n'
            + '链接:' + window.location.href + '\n'
            + '来源:<?php $this->options->siteUrl(); ?>\n\n'
            + window.getSelection().toString();
        clipboardData.setData('text/html', htmlData);
        clipboardData.setData('text/plain',textData);
    }
}
</script>
评论 (6条)
  1. 纯 CSS 也可以达到目的:
    -webkit-user-select: none;

    回复
    1. 拾叁 博主
      @阿歪

      -moz-user-select: none;
      -webkit-user-select: none;
      -ms-user-select: none;
      -khtml-user-select: none;
      user-select: none;}

      多谢指点,度娘了一下发个全面点的

      回复
  2. 禁止选中没必要吧。

    回复
    1. 拾叁 博主
      @Deerweak

      确实不建议那样做,不过十分介意自己的某一篇文章被转载走的话可以单独在那个页面调入这个代码。又或者可以自己另行发挥,类似百度文库那样子~?

      回复
  3. 我也觉得这样似乎不太友好。如果想收藏某段文字还要调用 “Clip to evernote” 插件😇

    回复
  4. 请问这段代码是要插入到哪个文件里呢?是不是post.php文件里就可以了?😶

    回复