WordPress 将选中文字转发到微博
最近在看腾讯新闻的时候,无意中发现,当我选中新闻中的文字的时候,鼠标右上角会显示一个“转播至微博”的按钮,点击后就会将选中的文字转发到微博上。这是一个很不错的用户体验,如果能把它引入到 WordPress 博客中,那不是很好吗?
为此我还特地去注册了一个腾讯微博开放平台的开发者,当我开始阅读开发文档的时候,才发现,他妹的,腾讯官方已经推出一个相同功能的应用,叫作 “Q-Share”,再翻阅了一下其他资料,原来已经有前辈写出了 js 页面文字选中后分享到新浪微博的方法,那我就省力多了,两者结合一下,把新浪微博和腾讯微博两个按钮都加上了,然后闲的蛋疼的我又把它翻译成了 jQuery 的方法。
效果的话就可以看本站了,选中任何文字,就会在右上角显示两个微博按钮,点击试试吧。
实现的方法也很简单,只需要两步:
1、引入 jQuery,相信大多数 WordPress 博客都已经引入了 jQuery,那就可以直接进行第二步了。
2、在页面底部,或者更确切的说,在引入 jQuery 库的后面加上这样一段 JS,你就可以看到和本站一样的效果了。
var miniBlogShare = function() {
//指定位置驻入节点
$('<img id="imgSinaShare" class="img_share" title="将选中内容分享到新浪微博" src="http://wange.im/wp-content/themes/wange/images/sina_share.gif" /><img id="imgQqShare" class="img_share" title="将选中内容分享到腾讯微博" src="http://wange.im/wp-content/themes/wange/images/tt_share.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);
}
});
}();
//指定位置驻入节点
$('<img id="imgSinaShare" class="img_share" title="将选中内容分享到新浪微博" src="http://wange.im/wp-content/themes/wange/images/sina_share.gif" /><img id="imgQqShare" class="img_share" title="将选中内容分享到腾讯微博" src="http://wange.im/wp-content/themes/wange/images/tt_share.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 里的两张微博的图片路径替换成自己的地址,因为小站流量有限,大家帮我省着点花呗,嘿嘿。
- 微博认证,勾与火的考验2011年03月27日
- QQ 微博初体验2010年04月15日
- 腾讯牌操作系统离我们还有多远?2011年04月21日
- 非插件同步 WordPress 日志到嘀咕2011年03月31日
Pingback: WordPress选中文字分享到微博 « Mark
Pingback: Wordpress中添加选中文字分享到微博功能
确实慢了很多
直接将代码放jquery里面就可以?怎么我这么做了没有变化
Pingback: WordPress选中文字分享到微博 « 石头-凌乱居士
博主的博客怎么没有实践一下那段代码
这个挺不错的
来给学习来了, 不错.
来给学习来了, 不错.
现在你挂掉了这个设置吧?呵呵
Pingback: 技巧:WordPress 将选中文字转发到微博 | 永远的布络阁
来偷窃!这个我也要!哈哈哈
学习了。不错改天试试。
哟呵,现在研究的紧随时代步伐嘛,好久没来了,又上了个台阶。你空间还搁小张那嘛?
非常赞!
谢谢博主,不错的技术文章
过来学习学习啦 不错不错滴
仔细读了博主的文章,觉得非常不错,支持一下!
今天才发现不过在来博客之前!
果断拿走!呵呵~~
博主文章很不错,必须支持一个!
看一下...
这功能不错
很实用的代码,我去我的博客试试!想到在公司网站上也放一个,有这样的插件吧,我去找找,不过只放在公司文档宣传页面!
现在微薄都很少上了
转发到博客中去赚钱的!!
编码有问题哦 搞好后还要自己转码 你那是gb2312的还要自己转成utf8的
这个功能不错……
看望老友!呵呵……
Toby 上
Chrome 兼容的选取代码:
function get_selection( ) {
var d = document,
w = window,
s = w.getSelection, // chrome,opera,firefox
k = d.getSelection,
x = d.selection; // IE
return encodeURIComponent( (s ? s() : (k) ? k() : (x ? x.createRange().text : 0)) );
}
哦,不错啊。
我最近也用了这个,挺好的啊,这样的流量又可能多了
微博控的好东西
function getParamsOfShareWindow(width, height) {
//分享条
return ['toolbar=0,status=0,resizable=1,width=' + width + ',height=' + height + ',left=', (screen.width - width) / 2, ',top=', (screen.height - height) / 2].join('');
}
加一段这样的代码做个弹窗效果可能会更好
这个在灰狼的博客上也看过
这个很简单,用的很方便
搞不懂,收藏起来研究
恩,路过~
恩,这个方法不错,的确有的时候用的着。
那个,怎么加入自己的appkey呢??
这个没有试过
很好的一个方法,可以用到的。
还没搞懂,收藏了慢慢在学习
Pingback: WordPress 将选中文字转发到微博 _ 幻觉博客
真的很简单实用
主题大爱啊!!!哈哈~~~
好方法,学习了。
踩踩,支持支持~
刚刚看溪少的博客发现它有这么个功能,正留言问方法,转身道你的博客上发现你已经吧方法发出来了,哈哈,果断的拿走尝试去...
这个不错,收藏了
万大师介绍的这款不错~收了
过多花哨的代码只会让你的网页载入速度越来越慢,从你的博客载入速度就可看出来!
内容太多也可以嘛?代码也支持吗?嘿嘿,老兄,我回来了~~
很复杂,是C语言么
WP真的好强大啊!!!
亲, jQuery怎么引用哦。
这个一定要用力滴顶!太给力了!
博主牛人,,
居然是从百度新闻首页链接到这里的,站长和网站都很牛啊,就是域名有些生僻。
呵呵~博主真是无私啊~
完全看不懂,但博主好有才啊,敬佩
我喜欢这个
,帅气极了
亲,如果代码只加在footer.php,首页可以其他页面不行的话那就要在page.php、single.php等页面底部也加上呐?
亲,这和footer.php、page.php这些无关哟,只和你的jquery有关,加在jquery后面就可以
亲,jquery在哪个文件的呢?
你应该把最后一句话放在最前面说
这个功能确实太强了。。。
文章很不错,多多学习!
万戈胸在NB的路上渐行渐远了,佩服
想到就做,你是行动派。
已阅,支持下。
这个代码效果,我喜欢!
花生嘛事儿了?为嘛要目送?
曾经草根中的典范不再草根了,草根们就只能目送了啊(←你够了
好代码,直接拿走
真的有效果 看到微薄和腾讯
给力的功能啊···
我的已经绑定选取提示搜索了,这个暂时用不到
选中一段字,看到效果了!js真是强大又方便的说!
貌似你没加吧?没有看到效果
呃,有啊,刷新缓存瞧瞧
哈哈,title上多了点东西哦~
WordPress 将选中文字转发到微博 —— 转载自:奚少,欢迎归来~WordPress 将选中文字转发到微博 » Life Studio http://t.cn/Shd87u cc@万戈微博
之前见到腾讯微博有这个功能了,哈哈,没想到新浪也有,果断拿走~
果断用上,hiahia
我算好心人,更改图片地址喽
话说,直接转了并用上。
Pingback: WordPress 将选中文字转发到微博 – 当前前端
老万终于现身了。改天去加上试试。
这玩意好
很实用的改变
chrome木有效果哦
有的哟,清除缓存看看
是很久没有看到大大的技术文章了,也冒个泡支持一下
现在放了也没人分享,先收藏了哈
好久没技术文啦,围观
我在comments.php里也放了代码,文章内终于可以显示了。。
首页的求包养头像,真的经典呢。。。
这对于我来说就高级了,因为我只会上上twitter。。。这jq要收藏的,肯定有人要的。
嘿嘿,欢迎大叔收藏试用
你叫zww大叔 我叫你大叔 你那zww岂不是我 老大叔了
zww是真大叔,我嘛,还嫩着呢
万戈啊,为毛我的只能在首页用啊,在其他页面都不能用,顶部底部都放了。。。
看了一下,有效果啊
我在comments.php里也放在代码才有的。。不然就放foot.php只有首页有
这可能和你的 jquery 放的位置有关吧
jquery啊,貌似就放底部的啊。。。反正现在可以用了。。。多读取一次js而已。。。
问下,能添加twitter么
虽然两个图标才2KB,不过我还是放我自己图床啦,有无限流量的图床,放多大的图都无压力
成功
为啥俺的chrome没有效果的?
有的,清除下缓存看看
我的也是谷歌 可以的
万戈复出啦,撒花看效果
嘿嘿,我一直在的啦,亲
沙发么?
唉唉