lionisnotkitty

  想给自己的网站的文章增加分享按钮,查询资料后发现,均使用了目标网站提供的分享接口,比如新浪微博更可以直接使用其提供的分享按钮,按其规则添加js和页面代码就能实现新浪风格的分享按钮。因为想同时添加各大主流平台的分享按钮,所以自己添加了js代码来完成。

  首先在需要分享页面中添加按钮,比如我需要QQ,豆瓣,微博这三个分享,我用了li分别列出来。

<ul>

  <li class="share" shareto="qq">QQ</li>

  <li class="share" shareto="qq">微博</li>

  <li class="share" shareto="qq">豆瓣</li>

</ul>

js文件里面写分享的功能,为了便于复用,将分享功能封装写成一个类,方便调用。

(function(window,document){

    var share = function(ele,options,callback){

        var that=this,

             array = typeof ele === "string" ? document.querySelectorAll(ele) :ele ,

             img = document.getElementsByTagName(\'img\')[0];//获取文档的第一张图。

        that.options = {

               shareTitle:document.title,

               shareUrl:window.location.hred,

               shareCon:\'\',

                shareImage:img?img.attribution.src.value:\'\',

                sina: {

                     ralateUid:""       //需要分享到的人的新浪数字账号

                  }

              };

          for(i in options) {

                 that.options[i] = options[i];

             };

          if (array.length === 0) callback(\'没有获取到元素\');

          for (var i=0,l=array.length;i<l;i++){

                 array[i].addEventListener(\'click\',function(){

                        var shareTo = this.attributes.shareto;

                        if(!sharetTo){

                             callback(\'没有设置shareto\')

                         }else {

                               share(shareto.value)

                            };

            },false);

};

var shaer = function(type){

     var surl;

     var options = that.options;

     switch(type){

        

case \'qq\':
       surl = "http://connect.qq.com/widget/shareqq/index.html?url=" + options.shareUrl + "&title=" + options.shareTitle + "&desc=" + options.shareCon + "&pics=" + options.shareIamge;
        break;
  case \'sina\':
       surl = "http://v.t.sina.com.cn/share/share.php?url=" + options.shareUrl + "&title=" + options.shareTitle + "&searchPic=true&pic=" + options.shareIamge + "&ralateUid=" + options.sina.ralateUid;
       break;
  case "douban":
         surl = "https://www.douban.com/share/service?href=" + options.shareUrl + "&name=" + options.shareTitle + "&image=" + options.shareIamge + "&text=" + options.shareCon;
       break;
       default:
       callback("shareto设置错误");
       return false;

    };

 window.open(surl,\'\');

  };

 };

window.share=share;

})(window,docuement);

下面是具体调用上面的方法:

var myshare = new share(\'.share\',{

   shareTitle:"",

   shareUrl:"",

   shareCon:"",

   sina:{

     ralateUid:""

   },function(data){console.log(data)}

};

可以按照自己需要设置,也可以使用默认。

这个方法主要参考自 前端网的panio123发布的js小组件练习,觉得写法简单易懂,很利于学习,这里进行分享。

关于更多的网页分享接口:

微信可以采用在线二维码生成器。

百度贴吧:surl="http://tieba.baidu.com/f/commit/share/openShareApi?title"+options.shareTit+"&url"+options.shareUrl+"&pic"+options.shareImage;

 

开心网:surl="http://www.kaixin001.com/repaste/share.php?

rtitle"+options.shareTit;

或则:surl="http://www.kaixin001.com/rest/records.php?

url"+options.shareUrl+"&content"+options.shareCon+"&pic"+options.shareImage+"&showcount=0&style=11";

 

facebook:surl="http://www.facebook.com/sharer/sharer.php

?u"+options.shareUrl+"&t"+options.shareTit;

 

分类:

技术点:

相关文章: