最近在看騰訊新聞的時候,無意中發現,當我選中新聞中的文字的時候,鼠標右上角會顯示一個 「轉播至微博」 的按鈕,點擊後就會將選中的文字轉發到微博上。這是一個很不錯的用户體驗,如果能把它引入到 WordPress 博客中,那不是很好嗎?

為此我還特地去註冊了一個騰訊微博開放平台的開發者,當我開始閲讀開發文檔的時候,才發現,他妹的,騰訊官方已經推出一個相同功能的應用,叫作
「Q-Share」,再翻閲了一下其他資料,原來已經有前輩寫出了 js 頁面文字選中後分享到新浪微博的方法,那我就省力多了,兩者結合一下,把新浪微博和
騰訊微博兩個按鈕都加上了,然後閒的蛋疼的我又把它翻譯成了 jQuery 的方法。

效果的話就可以看本站了,選中任何文字,就會在右上角顯示兩個微博按鈕,點擊試試吧。

實現的方法也很簡單,只需要兩步:

1 、引入 jQuery,相信大多數 WordPress 博客都已經引入了 jQuery,那就可以直接進行第二步了。

2 、在頁面底部,或者更確切的説,在引入 jQuery 庫的後面加上這樣一段 JS,你就可以看到和本站一樣的效果了。

var miniBlogShare = function() {
    //指定位置駐入節點
   
$('<img id="imgSinaShare" title="將選中內容分享到新浪微博"
src="http://upload.chinaz.com/2012/0203/1328255868614.gif" /><img
id="imgQqShare" title="將選中內容分享到騰訊微博"
src="http://upload.chinaz.com/2012/0203/1328255868314.png"
/>').appendTo('body');
  
    //默認樣式
    $('.img_share').css({
        display : 'none',
        position : 'absolute',
        cursor : 'pointer'
    });
  
    //選中文字
    var funGetSelectTxt = function() {
        var txt = '';
        if(document.selection) {
            txt = document.selection.createRange().text;
        } else {
            txt = document.getSelection();
        }
        return txt.toString();
    };
  
    //選中文字後顯示微博圖標
    $('html,body').mouseup(function(e) {
        if (e.target.id == 'imgSinaShare' || e.target.id == 'imgQqShare') {
            return
        }
        e = e || window.event;
        var txt = funGetSelectTxt(),
            sh = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
            left = (e.clientX - 40 < 0) ? e.clientX + 20 : e.clientX - 40,
            top = (e.clientY - 40 < 0) ? e.clientY + sh + 20 : e.clientY + sh - 40;
        if (txt) {
            $('#imgSinaShare').css({
                display : 'inline',
                left : left,
                top : top
            });
            $('#imgQqShare').css({
                display : 'inline',
                left : left + 30,
                top : top
            });
        } else {
            $('#imgSinaShare').css('display', 'none');
            $('#imgQqShare').css('display', 'none');
        }
    });
  
    //點擊新浪微博
    $('#imgSinaShare').click(function() {
        var txt = funGetSelectTxt(), title = $('title').html();
        if (txt) {
           
window.open('http://v.t.sina.com.cn/share/share.php?title=' + txt + '
—— 轉載自:' + title + '&url=' + window.location.href);
        }
    });
  
    //點擊騰訊微博
    $('#imgQqShare').click(function() {
        var txt = funGetSelectTxt(), title = $('title').html();
        if (txt) {
           
window.open('http://v.t.qq.com/share/share.php?title=' +
encodeURIComponent(txt + ' —— 轉載自:' + title) + '&url=' +
window.location.href);
        }
    });
}();

是不是很簡單呀?

趕緊選中本文的標題,在微博上通知你的好友來圍觀吧,哈哈~

PS:最後,説一句,其實這個方法不僅僅適用於 WordPress,JS 是通用的,你可以把這段 JS 掛載到任何網站上都可以得到相同的效果。

PS2:最最最後,再説一句,麻煩各位在使用前,把 JS 裏的兩張微博的圖片路徑替換成自己的地址,因為小站流量有限,大家幫我省着點花唄,嘿嘿。