今天我又小肚鸡肠了一下╮(﹀_﹀)╭
查看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可是大大有用的哦) 算是意外之喜。
后来晚上想起这事又去搜索一番,惊喜的发现居然还有办法,之前肿么没发现( -'`-; )
我自己只试用了方法一:复制下面的代码到主题的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');