标签归档:分享

非插件和第三方资源社交网站分享按钮代码

许多网站都安装了社交分享按钮,方便浏览者将网页链接分享到相应社交网站,更广度地传播内容。要实现这类功能,对于WordPress博客来说,要么安装插件,要么调用第三方的服务,比如国外的AddThis国内的JiaThis之类的服务。

然而,第三方的服务,一个最大的问题是影响网站速度,国内的服务在国外速度不行,国外的服务在国内速度不行,而且网站在加载的时候,总是需要多加载一些服务,毕竟是第三方的服务。

如果只是局限于Twitter, Facebook, Google+这几个最常用的服务,我这里分享一个不安装插件、不用第三方服务的方法:使用JS书签(Bookmarklet)中的JavaScript代码,把它们做成超链接的形式,放在主题中相应位置,即可实现社交分享功能,由于没有多出来任何页面加载元素,所以完全不影响网页加载速度,并且还能避免被AdBlock之类插件过滤的可能。

原理很简单,把JS代码替换超链接中HTTP链接即可,即href的属性,如下图示:

code

用来替换的三个社交网站JS代码分别如下(完整代码亦可查看本网页的HTML源代码):

Facebook

javascript:var d=document,f='https://www.facebook.com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&v=4&i=1378393915&u='+e(l.href)+'&t='+e(d.title);1;try{if (!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);share_internal_bookmarklet(p)}catch(z) {a=function() {if (!window.open(f+'r'+p,'sharer','toolbar=0,status=0,resizable=1,width=626,height=436'))l.href=f+p};if (/Firefox/.test(navigator.userAgent))setTimeout(a,0);else{a()}}void(0)

Twitter

javascript:(function(){window.twttr=window.twttr||{};var D=550,A=450,C=screen.height,B=screen.width,H=Math.round((B/2)-(D/2)),G=0,F=document,E;if(C>A){G=Math.round((C/2)-(A/2))}window.twttr.shareWin=window.open('https://twitter.com/share','','left='+H+',top='+G+',width='+D+',height='+A+',personalbar=0,toolbar=0,scrollbars=1,resizable=1' );E=F.createElement('script');E.src='https://platform.twitter.com/bookmarklets/share.js?v=1' ;F.getElementsByTagName('head')[0].appendChild(E)}());

Google+

javascript:void(window.open('https://plus.google.com/share?ur\l='+encodeURIComponent(location), 'Share to Google+','width=600,height=460,menubar=no,location=no,status=no'));

AddThis聚合

javascript:void((function(svc) {var d=document,w=window,p=0,b=function(){if(!p){p=1;if(_atc.xol)_adr.onReady();if(w.addthis_sendto)addthis_sendto(svc||'bkmore',{product:'bmt-'+_atc.ver})}else{p=0;if(_atw)_atw.clb()}};if(!w._atc){var ol=w.addthis_onload||[],o=d.createElement('script');w.addthis_product = 'bmt-250';o.src='//s7.addthis.com/js/250/addthis_widget.js#domready=1&username=bookmarklet';ol.push(b);w.addthis_onload=ol;d.getElementsByTagName('body')[0].appendChild(o)}else b()})())

效果见本网站文章末尾所示。我这里直接用文字标明社交网络名称,当然也可以用相应社交网站的图标来表明。这个方法简单易行,理论上任何HTML网页中间都可以使用,其它的社交网站分享,如果有相应的JS代码,添加起来也是一样的道理。

用浏览器书签分享网页到社交网络

JavaScript(JS)是一种脚本语言,功能强大。在浏览器中用JS脚本语言形成的书签(bookmarklet),可以完成很多意想不到的功能,比如用JS书签可以将值得分享的文章链接分享到各大社交网络中去。

大部分社交网络的分享功能都有相应的分享插件,甚至集成到智能手机浏览器中,但用JS书签的方法更简便,甚至可以实现本来没有的功能。iPhone, iPad中的Safari浏览器虽然内置分享到新浪微博、Twitter, Facebook的功能,但只能分享一个网址链接,并且没有集成Google+和腾讯微博,这时候,用JS书签就可以实现。

以下是几段社交分享JS代码,用鼠标左键按住相应名称拖拽到浏览器收藏栏(Safari, Chrome, Firefox, IE)即可,以后在需要分享相应网页的时候,点击相应书签,就可以方便地将网页分享给社交网络中的好友。

Google+

javascript:void(window.open('https://plus.google.com/share?ur\l='+encodeURIComponent(location), 'Share to Google+','width=600,height=460,menubar=no,location=no,status=no'));

Twitter

javascript:(function(){window.twttr=window.twttr||{};var D=550,A=450,C=screen.height,B=screen.width,H=Math.round((B/2)-(D/2)),G=0,F=document,E;if(C>A){G=Math.round((C/2)-(A/2))}window.twttr.shareWin=window.open('https://twitter.com/share','','left='+H+',top='+G+',width='+D+',height='+A+',personalbar=0,toolbar=0,scrollbars=1,resizable=1');E=F.createElement('script');E.src='https://platform.twitter.com/bookmarklets/share.js?v=1';F.getElementsByTagName('head')[0].appendChild(E)}());

Facebook

javascript:var d=document,f='https://www.facebook.com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&v=4&i=1378393915&u='+e(l.href)+'&t='+e(d.title);1;try{if (!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);share_internal_bookmarklet(p)}catch(z) {a=function() {if (!window.open(f+'r'+p,'sharer','toolbar=0,status=0,resizable=1,width=626,height=436'))l.href=f+p};if (/Firefox/.test(navigator.userAgent))setTimeout(a,0);else{a()}}void(0)

新浪微博

javascript:(function(){window.open('http://v.t.sina.com.cn/share/share.php?title='+encodeURIComponent(document.title)+'&url='+encodeURIComponent(location.href)+'&source=bookmark','_blank','width=450,height=400');})()

腾讯微博

javascript:(function(){outText='';for(i=0;i<document.images.length;i++){if(outText.indexOf(document.images[i].src)==-1){if(i==0){outText+=document.images[i].src;}else{outText+='|'+document.images[i].src}}};window.open('http://v.t.qq.com/share/share.php?title='+encodeURIComponent (document.title)+'&url='+encodeURIComponent(location.href)+'&appkey='+encodeURI("8cfebbdbe60d4898887bbd17c22f9260")+'&pic='+encodeURI(outText),'_blank','width=608,height=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,location=yes,resizable=no,status=no');})()

英语写作大写字母规则

英语写作中必然遇到字母大小写(CAPITAL LETTERS),这是一个细节问题,其中有许多规定。我很早就注意到这个问题,可惜当年我的老师没有完全解答我的问题,我也没有深入研究。

阅读 How to Speak and Write Correctly 一书时,我发现作者做了较好的归纳总结,虽然谈不上是包罗所有情况的完全手册,但基本上涵盖了英语写作中常见的字母大小写规则:

  1. 句子第一个字母要大写:

    “Time flies.” “My dear friend.”

  2. 直接引语应以大写字母开始:

    Dewey said, “Fire, when you are ready.”

  3. 直接疑问句:

    Let me ask you, “How old are you?”

  4. 诗句:

    Breathes there a man with soul so dead?

  5. 带数字序列的从句:

    The witness asserts: (1) That he saw the man attacked; (2) That he saw him fall; (3) That he saw his assailant flee.

  6. 文章的标题和章节名称要全部大写:

    CHAPTER VIII –RULES FOR USE OF CAPITALS

  7. 书籍名称中,名词、代词、形容词、副词都应该大写:

    Johnson’s Lives of the Poets

  8. 罗马数用大写字母表示:

    I II III V X L C D and M mean 1, 2, 3, 5, 10, 50, 100, 500 and 1000 respectively.

  9. 姓名、地名等专属名词以大写字母开头:

    Jones, Johnson, Caesar, England, Pacific, China, Beijing. 像river这种普通名词用在特定环境中也要用大写,比如Mississippi River. 此外,像north, south, west, east形容一个地区的南北区域时,也要大写,比如:The North fight against the South. 当专属名词和普通名词通过连字符号相联时,只需合成词的第一个字母大写:Sunday-school, Post-hometric.

  10. 从专属名词衍生出来的词要大写,包括党派名称,宗教部门,思想流派等:

    American, Irish, Chistrianize. Republican, Democrat, Catholic, Free Thinkers.

  11. 荣誉称号:

    President Obama, Chairman Mao, Governor.

  12. 学位缩写、大学名称:

    LL. D., M.a., B.S., Harvard University, Manhattan College, etc.

  13. 专属名词前的亲属称呼也应大写:

    Father Abraham, Mother Eddy, Brother John, Uncle Jacob, Aunt Eliza.

  14. 基督教中与神有关的单词要大写首字母,常规写作中一般不会碰到:

    Father, God, Lord, Creator, Holy One, His work, The work of Him, Old Testment, Holy Writ, Water of Life, Hope of men, Help of Christians, etc.

  15. 形容历史上重大事件的短语用大写首字母,以示区别:

    The Revolution, The Civil War, The Middle Age, The Age of Iron, etc.

  16. 星期、月份、季节、年份名称使用大写首字母:

    Monday, March, Autumn.

  17. 人称代词 I 永远用大写,插入性的语气感叹词应大写:

    Ah! I pitied him.

  18. 采用拟人化写法时,无生命的对象使用大写字母加以表示:

    The starry Night shook the dews from her wings.

为了强化自己的学习效果,我将这些知识总结分享在此,希望有朋友用得上。