TypeCodes

Wordpress文章复制自动添加博客链接的JS脚本(兼容IE、Firefox和Chrome)

这次博客在改用新主题的时候,曾经尝试过给博客的文章页面添加一个小功能:在复制文字时自动在文字后面加入文章的链接地址。当然保护文章版权的方法也有很多,例如给博文中的图片添加水印,在文章中多次增加内链,也有通过禁用右键复制功能来实现等等。但是还是vfhky觉得添加水印有碍图片的阅览,可以增加文字内链也麻烦,而禁止右键的复制又显得小气,所以试了试采用自动在复制的文字后面添加文章出处的链接。后来又觉得比较无聊,于是又删掉了,还是自然的好!下面给出兼容IE、Firefox和Chrome的javascript脚本代码,仅供参考。

使用方法:直接在Wordpress文章输出单页single.php中 <?php the_content('Read more...'); ?> 后面添加即可。如果还想在实现这个功能的同时尽量不影响文章页面的载入速度,那么可以把这段代码加在<?php get_footer(); ?>的后面。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script type="text/javascript">
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    if( window.ActiveXObject )
    {
        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',t+'\r\n'+s);
        }
    }
    else
    {
        function addLink()
        {
            var body_element = document.getElementsByTagName('body')[0];
            var selection;
            selection = window.getSelection();
            var pagelink = "<br /> 本文来自: <?php bloginfo('name'); ?> <?php echo get_settings('home'); ?> ;原文链接:<a href='"+document.location.href+"'>"+document.location.href+"</a> 。";

            var copytext = selection + pagelink;
            var newdiv = document.createElement('div');
            newdiv.style.position='absolute';
            newdiv.style.left='-99999px';
            body_element.appendChild(newdiv);
            newdiv.innerHTML = copytext;
            selection.selectAllChildren(newdiv);
            window.setTimeout
            (
                function()
                {
                    body_element.removeChild(newdiv);
                },0
            );
        }
        document.oncopy = addLink;
    }
</script>
打赏支持

Comments »