-
Notifications
You must be signed in to change notification settings - Fork 25
/
needsharebutton.min.js
1 lines (1 loc) · 9.88 KB
/
needsharebutton.min.js
1
!function(){function a(a,b){if("string"==typeof b){var c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector;if(c)for(;a;){if(c.bind(a)(b))return a;a=a.parentElement}return!1}for(;a;){if(a==b)return a;a=a.parentElement}return!1}window.needShareButton=function(b,c){function d(a){var b={};for(var c in f.options)b[c]=f.options[c];b.url=window.location.href,b.title=f.getTitle(),b.image=f.getImage(),b.description=f.getDescription();for(var d in a.dataset)if(d.match(/share/)){var e=d.replace(/share/,"");if(!e.length)continue;e=e.charAt(0).toLowerCase()+e.slice(1);var g=a.dataset[d];"networks"===e?g=g.toLowerCase().split(","):"url"===e&&g&&"/"===g[0]&&(g=location.origin+g),b[e]=g}return b}function e(b){var c=document.createElement("span");if(c.className="need-share-button_dropdown",!b.querySelector(".need-share-button_dropdown")){var e=d(b);"box"==e.iconStyle&&"horizontal"==e.boxForm?c.className+=" need-share-button_dropdown-box-horizontal":"box"==e.iconStyle&&"vertical"==e.boxForm&&(c.className+=" need-share-button_dropdown-box-vertical"),setTimeout(function(){switch(e.position){case"topLeft":c.className+=" need-share-button_dropdown-top-left";break;case"topRight":c.className+=" need-share-button_dropdown-top-right";break;case"topCenter":c.className+=" need-share-button_dropdown-top-center",c.style.marginLeft=-c.offsetWidth/2+"px";break;case"middleLeft":c.className+=" need-share-button_dropdown-middle-left",c.style.marginTop=-c.offsetHeight/2+"px";break;case"middleRight":c.className+=" need-share-button_dropdown-middle-right",c.style.marginTop=-c.offsetHeight/2+"px";break;case"bottomLeft":c.className+=" need-share-button_dropdown-bottom-left";break;case"bottomRight":c.className+=" need-share-button_dropdown-bottom-right";break;case"bottomCenter":c.className+=" need-share-button_dropdown-bottom-center",c.style.marginLeft=-c.offsetWidth/2+"px";break;default:c.className+=" need-share-button_dropdown-bottom-center",c.style.marginLeft=-c.offsetWidth/2+"px"}},1);var g="default"==e.iconStyle?"need-share-button_link need-share-button_":"need-share-button_link-"+e.iconStyle+" need-share-button_link need-share-button_";for(var h in e.networks){var i=document.createElement("span");h=e.networks[h],i.className=g+h,i.className+=" icon-"+h,i.dataset.network=h,i.title=h,c.appendChild(i)}c.addEventListener("click",function(c){if(a(c.target,".need-share-button_link"))return c.preventDefault(),c.stopPropagation(),f.share[c.target.dataset.network](b),!1}),b.appendChild(c)}}var f=this;f.elem=b||"need-share-button",f.getTitle=function(){var a;return document.querySelector&&(a=document.querySelector("title"))?a.innerText:document.title},f.getImage=function(){var a;return document.querySelector&&(a=document.querySelector('meta[property="og:image"]')||document.querySelector('meta[name="twitter:image"]'))?a.getAttribute("content"):""},f.getDescription=function(){var a;return document.querySelector?(a=document.querySelector('meta[property="og:description"]')||document.querySelector('meta[name="twitter:description"]')||document.querySelector('meta[name="description"]'))?a.getAttribute("content"):"":(a=document.getElementsByTagName("meta").namedItem("description"))?a.getAttribute("content"):""},f.share={weibo:function(a){var b=d(a),c="http://v.t.sina.com.cn/share/share.php?title="+encodeURIComponent(b.title)+"&url="+encodeURIComponent(b.url)+"&pic="+encodeURIComponent(b.image);f.popup(c)},wechat:function(a){var b=d(a),c="https://api.qinco.me/api/qr?size=400&content="+encodeURIComponent(b.url),e=a.querySelector(".need-share-button_dropdown"),f=e.getElementsByClassName("need-share-wechat-code-image")[0];f?f.remove():(f=document.createElement("img"),f.src=c,f.alt="loading wechat image...",f.setAttribute("class","need-share-wechat-code-image"),e.appendChild(f))},douban:function(a){var b=d(a),c="https://www.douban.com/share/service?name="+encodeURIComponent(b.title)+"&href="+encodeURIComponent(b.url)+"&image="+encodeURIComponent(b.image);f.popup(c)},qqzone:function(a){var b=d(a),c="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?title="+encodeURIComponent(b.title)+"&url="+encodeURIComponent(b.url)+"&pics="+encodeURIComponent(b.image)+"&desc="+encodeURIComponent(b.description);f.popup(c)},renren:function(a){var b=d(a),c="http://widget.renren.com/dialog/share?title="+encodeURIComponent(b.title)+"&resourceUrl="+encodeURIComponent(b.url)+"&pic="+encodeURIComponent(b.image)+"&description="+encodeURIComponent(b.description);f.popup(c)},mailto:function(a){var b=d(a),c="mailto:?subject="+encodeURIComponent(b.title)+"&body=Thought you might enjoy reading this: "+encodeURIComponent(b.url)+" - "+encodeURIComponent(b.description);window.location.href=c},twitter:function(a){var b=d(a),c=b.protocol+"twitter.com/intent/tweet?text=";c+=encodeURIComponent(b.title)+"&url="+encodeURIComponent(b.url),f.popup(c)},pinterest:function(a){var b=d(a),c=b.protocol+"pinterest.com/pin/create/bookmarklet/?is_video=false";c+="&media="+encodeURIComponent(b.image),c+="&url="+encodeURIComponent(b.url),c+="&description="+encodeURIComponent(b.title),f.popup(c)},facebook:function(a){var b=d(a),c=b.protocol+"www.facebook.com/share.php?";c+="u="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},googleplus:function(a){var b=d(a),c=b.protocol+"plus.google.com/share?";c+="url="+encodeURIComponent(b.url),f.popup(c)},reddit:function(a){var b=d(a),c=b.protocol+"www.reddit.com/submit?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},delicious:function(a){var b=d(a),c=b.protocol+"del.icio.us/post?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="¬es="+encodeURIComponent(b.description),f.popup(c)},tapiture:function(a){var b=d(a),c=b.protocol+"tapiture.com/bookmarklet/image?";c+="img_src="+encodeURIComponent(b.image),c+="&page_url="+encodeURIComponent(b.url),c+="&page_title="+encodeURIComponent(b.title),f.popup(c)},stumbleupon:function(a){var b=d(a),c=b.protocol+"www.stumbleupon.com/submit?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},linkedin:function(a){var b=d(a),c=b.protocol+"www.linkedin.com/shareArticle?mini=true";c+="&url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="&source="+encodeURIComponent(b.source),f.popup(c)},slashdot:function(a){var b=d(a),c=b.protocol+"slashdot.org/bookmark.pl?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},technorati:function(a){var b=d(a),c=b.protocol+"technorati.com/faves?";c+="add="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},posterous:function(a){var b=d(a),c=b.protocol+"posterous.com/share?";c+="linkto="+encodeURIComponent(b.url),f.popup(c)},tumblr:function(a){var b=d(a),c=b.protocol+"www.tumblr.com/share?v=3";c+="&u="+encodeURIComponent(b.url),c+="&t="+encodeURIComponent(b.title),f.popup(c)},googlebookmarks:function(a){var b=d(a),c=b.protocol+"www.google.com/bookmarks/mark?op=edit";c+="&bkmk="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="&annotation="+encodeURIComponent(b.description),f.popup(c)},newsvine:function(a){var b=d(a),c=b.protocol+"www.newsvine.com/_tools/seed&save?";c+="u="+encodeURIComponent(b.url),c+="&h="+encodeURIComponent(b.title),f.popup(c)},pingfm:function(a){var b=d(a),c=b.protocol+"ping.fm/ref/?";c+="link="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="&body="+encodeURIComponent(b.description),f.popup(c)},evernote:function(a){var b=d(a),c=b.protocol+"www.evernote.com/clip.action?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},friendfeed:function(a){var b=d(a),c=b.protocol+"www.friendfeed.com/share?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),f.popup(c)},vkontakte:function(a){var b=d(a),c=b.protocol+"vkontakte.ru/share.php?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="&description="+encodeURIComponent(b.description),c+="&image="+encodeURIComponent(b.image),c+="&noparse=true",f.popup(c)},odnoklassniki:function(a){var b=d(a),c=b.protocol+"www.odnoklassniki.ru/dk?st.cmd=addShare&st.s=1";c+="&st.comments="+encodeURIComponent(b.description),c+="&st._surl="+encodeURIComponent(b.url),f.popup(c)},mailru:function(a){var b=d(a),c=b.protocol+"connect.mail.ru/share?";c+="url="+encodeURIComponent(b.url),c+="&title="+encodeURIComponent(b.title),c+="&description="+encodeURIComponent(b.description),c+="&imageurl="+encodeURIComponent(b.image),f.popup(c)}},f.popup=function(a){var b=600,c=500,d=void 0!=window.screenLeft?window.screenLeft:screen.left,e=void 0!=window.screenTop?window.screenTop:screen.top,f=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,g=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,h=f/2-b/2+d,i=g/2-c/2+e,j=window.open(a,"targetWindow","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width="+b+", height="+c+", top="+i+", left="+h);window.focus&&j.focus()},f.options={iconStyle:"default",boxForm:"horizontal",position:"bottomCenter",protocol:["http","https"].indexOf(window.location.href.split(":")[0])===-1?"https://":"//",networks:"Weibo,Wechat,Douban,QQZone,Twitter,Pinterest,Facebook,GooglePlus,Reddit,Linkedin,Tumblr,Evernote"};for(var g in c)f.options[g]=c[g];f.options.networks=f.options.networks.toLowerCase().split(","),document.addEventListener("click",function(b){var c=document.querySelector(".need-share-button-opened");if(!a(b.target,".need-share-button-opened"))if(c)c.classList.remove("need-share-button-opened"),c.querySelector(".need-share-wechat-code-image")&&c.querySelector(".need-share-wechat-code-image").remove();else{var d=a(b.target,f.elem);d&&(d.classList.contains("need-share-button-opened")||(e(d),setTimeout(function(){d.classList.add("need-share-button-opened")},1)))}})},new needShareButton(".need-share-button")}();