今天我又小肚鸡肠了一下╮(﹀_﹀)╭

查看cnzz发现最近来源最多的是搜索关键词: "最下侧导航栏中第三个栏目Distribute下,第一个小栏目名称为:",跳转过去,结果发现我排第4,第5的是个论坛,一字不差copy我那篇CSDN有奖任务答案,没有注明来源,当时挺气愤的,而且我刚把今天的新增的任务添加上去,没几分钟就在那里看到了,更是郁闷。

于是想到在复制到剪切板的文字中插入版权信息,这种情况下再被删掉就是对方人品问题了,我也没办法。

搜索了一下,卢松松博客给出了如下代码:

<script type="text/javascript">
    document.body.oncopy=function(){
        event.returnValue=false;
        var t=document.selection.createRange().text;
        var s="本文来源于<?php bloginfo('name'); ?> <?php echo get_settings('home'); ?> , 原文地址
        : <?php the_permalink() ?> ";
        clipboardData.setData('Text','\r\n'+t+'\r\n'+s+'\r\n');
    }
</script>

测试一下发现只适用于IE,chrome下没有document.selection,自己改了改用window.getSelection().toString()来读取选中信息,结果后来发现还是不行,chrome基本没法直接操作剪切板,搜索也多是使用Zero Clipboard这一插件或用flash去实现。

<script type="text/javascript">
    document.body.oncopy=function(){
        event.returnValue=false;
        //t = window.getSelection ? window.getSelection().toString() : document.selection.createRange().text;
        var t = null;
        var s="本文来源于<?php bloginfo('name'); ?> <?php echo get_settings('home'); ?> , 原文地址: <?php the_permalink() ?> ";
        //如果非ie
        if (navigator.userAgent.indexOf("MSIE") == -1){
            t = window.getSelection().toString();
            //copy('\r\n'+t+'\r\n'+s+'\r\n');
        }else{
            t = document.selection.createRange().text;
            clipboardData.setData('Text','\r\n'+t+'\r\n'+s+'\r\n');
        }
    }
</script>

在这个过程中无意中发现chrome控制台有个copy方法可以复制控制台内容到剪切板,相关看这里:Chrome控制台console的用法(学了之后对于调试js可是大大有用的哦) 算是意外之喜。

后来晚上想起这事又去搜索一番,惊喜的发现居然还有办法,之前肿么没发现( -'`-; )

转载自:wordpress小技巧:复制文章内容自动添加版权

我自己只试用了方法一:复制下面的代码到主题的functions.php文件中

function v7v3_copyright() { ?>
    <script type='text/javascript'>
        function addLink() {
            var body_element = document.getElementsByTagName('body')[0];
            var selection;
            selection = window.getSelection();
            var pagelink = "<br /><br /> 原文信息: <?php if(is_single()){ the_title();}?> 原文链接:<a href='"+document.location.href+"'>"+document.location.href+"</a>";
            var copy_text = selection + pagelink;
            var new_div = document.createElement('div');
            new_div.style.left='-99999px';
            new_div.style.position='absolute';
            body_element.appendChild(new_div );
            new_div.innerHTML = copy_text ;
            selection.selectAllChildren(new_div );
            window.setTimeout(function() {
                body_element.removeChild(new_div );
            },0);
        }
        document.oncopy = addLink;
    </script>
<?php
}
add_action( 'wp_head', 'v7v3_copyright');