最近在搞一个日程管理网站, 需要实现分享到人人功能, 所以找了一下人人API, 然后根据自己需要修改了一下.

首先得有一个人人给的js文件, 如下:

  1 var Renren = Renren || {};
  2 if(!Renren.share){
  3 Renren.share = function() {
  4     var isIE = navigator.userAgent.match(/(msie) ([\w.]+)/i);
  5     var hl = location.href.indexOf('#');
  6     var resUrl = (hl == -1 ? location.href : location.href.substr(0, hl));
  7     var shareImgs = "";
  8     var sl = function(str) {
  9         var placeholder = new Array(23).join('x');
 10         str = str
 11                 .replace(
 12                         /(https?|ftp|gopher|telnet|prospero|wais|nntp){1}:\/\/\w*[\u4E00-\u9FA5]*((?![\"| |\t|\r|\n]).)+/ig,
 13                         function(match) {
 14                             return placeholder + match.substr(171);
 15                         }).replace(/[^\u0000-\u00ff]/g, "xx");
 16         return Math.ceil(str.length / 2);
 17     };
 18     var cssImport = function(){
 19         var static_url = 'http://xnimg.cn/xnapp/share/css/v2/rrshare.css';
 20         var b = document.createElement("link");
 21         b.rel = "stylesheet";
 22         b.type = "text/css";
 23         b.href = static_url;
 24         (document.getElementsByTagName("head")[0] || document.body).appendChild(b)
 25     };
 26     var getShareType = function (dom) {
 27         return dom.getAttribute("type") || "button"
 28     };
 29     var opts = {};
 30     if(typeof(imgMinWidth)!='undefined'){
 31         opts.imgMinWidth = imgMinWidth || 60;
 32     } else {
 33         opts.imgMinWidth = 60;
 34     }
 35     if(typeof(imgMinHeight)!='undefined'){
 36         opts.imgMinHeight = imgMinHeight || 60;
 37     } else {
 38         opts.imgMinHeight = 60;
 39     }
 40     var renderShareButton = function (btn,index) {
 41         if(btn.rendered){
 42             return;
 43         }
 44         btn.paramIndex = index;
 45         var shareType = getShareType(btn).split("_");
 46         var showType = shareType[0] == "icon" ? "icon" : "button";
 47         var size = shareType[1] || "small";
 48         var shs = "xn_share_"+showType+"_"+size;
 49         var innerHtml = [
 50                          '<span class="xn_share_wrapper ',shs,'"></span>'
 51                          ];
 52         btn.innerHTML = innerHtml.join("");
 53         btn.rendered = true;
 54     };
 55     var postTarget = function(opts) {
 56         var form = document.createElement('form');
 57         form.action = opts.url;
 58         form.target = opts.target;
 59         form.method = 'POST';
 60         form.acceptCharset = "UTF-8";
 61         for (var key in opts.params) {
 62             var val = opts.params[key];
 63             if (val !== null && val !== undefined) {
 64                 var input = document.createElement('textarea');
 65                 input.name = key;
 66                 input.value = val;
 67                 form.appendChild(input);
 68             }
 69         }
 70         var hidR = document.getElementById('renren-root-hidden');
 71         if (!hidR) {
 72             hidR = document.createElement('div'), syl = hidR.style;
 73             syl.positon = 'absolute';
 74             syl.top = '-10000px';
 75             syl.width = syl.height = '0px';
 76             hidR.id = 'renren-root-hidden';
 77             (document.body || document.getElementsByTagName('body')[0])
 78                     .appendChild(hidR);
 79         }
 80         hidR.appendChild(form);
 81         try {
 82             var cst = null;
 83             if (isIE && document.charset.toUpperCase() != 'UTF-8') {
 84                 cst = document.charset;
 85                 document.charset = 'UTF-8';
 86             }
 87             form.submit();
 88         } finally {
 89             form.parentNode.removeChild(form);
 90             if (cst) {
 91                 document.charset = cst;
 92             }
 93         }
 94     };
 95     var getCharSet = function(){
 96         if(document.charset){
 97             return document.charset.toUpperCase();
 98         } else {
 99             var metas = document.getElementsByTagName("meta");
100             for(var i=0;i < metas.length;i++){
101                 var meta = metas[i];
102                 var metaCharset = meta.getAttribute('charset');
103                 if(metaCharset){
104                     return meta.getAttribute('charset');
105                 }
106                 var metaContent = meta.getAttribute('content');
107                 if(metaContent){
108                     var contenxt = metaContent.toLowerCase();
109                     var begin = contenxt.indexOf("charset=");
110                     if(begin!=-1){
111                         var end = contenxt.indexOf(";",begin+"charset=".length);
112                         if(end != -1){
113                             return contenxt.substring(begin+"charset=".length,end);
114                         }
115                         return contenxt.substring(begin+"charset=".length);
116                     }
117                 }
118             }
119         }
120         return '';
121     }
122     var charset = getCharSet();
123     var getParam = function (param){
124         param = param || {};
125         param.api_key = param.api_key || '';
126         param.resourceUrl = param.resourceUrl || resUrl;
127         param.title = param.title || '';
128         param.pic = param.pic || '';
129         param.description = param.description || '';
130         if(resUrl == param.resourceUrl){
131             param.images = param.images || shareImgs;//一般就是当前页面的分享,因此取当前页面的img
132         }
133         param.charset = param.charset || charset || '';
134         return param;
135     }
136     var onclick = function(data) {
137         var submitUrl = 'http://widget.renren.com/dialog/share';
138         var p = getParam(data);
139         var prm = [];
140         for (var i in p) {
141             if (p[i])
142                 prm.push(i + '=' + encodeURIComponent(p[i]));
143         }
144         var url = submitUrl+"?" + prm.join('&'), maxLgh = (isIE
145                 ? 2048
146                 : 4100), wa = 'width=700,height=650,left=0,top=0,resizable=yes,scrollbars=1';
147         if (url.length > maxLgh) {
148             window.open('about:blank', 'fwd', wa);
149             postTarget({
150                 url : submitUrl,
151                 target : 'fwd',
152                 params : p
153             });
154         } else {
155             window.open(url, 'fwd', wa);
156         }
157         return false;
158     };
159     window["rrShareOnclick"] = onclick;
160     var init = function() {
161         if (Renren.share.isReady || document.readyState !== 'complete')
162             return;
163         var imgs = document.getElementsByTagName('img'), imga = [];
164         for (var i = 0; i < imgs.length; i++) {
165             if (imgs[i].width >= opts.imgMinWidth
166                     && imgs[i].height >= opts.imgMinHeight) {
167                 imga.push(imgs[i].src);
168             }
169         }
170         window["rrShareImgs"] = imga;
171         if (imga.length > 0)
172             shareImgs = imga.join('|');
173         if (document.addEventListener) {
174             document.removeEventListener('DOMContentLoaded', init, false);
175         } else {
176             document.detachEvent('onreadystatechange', init);
177         }
178         cssImport();
179         var shareBtn = document.getElementsByName("xn_share");
180         var len = shareBtn?shareBtn.length:0;
181         for (var b = 0; b < len; b++) {
182             var a = shareBtn[b];
183             renderShareButton(a,b);
184         }
185         Renren.share.isReady = true;
186     };
187     if (document.readyState === 'complete') {
188         init();
189     } else if (document.addEventListener) {
190         document.addEventListener('DOMContentLoaded', init, false);
191         window.addEventListener('load', init, false);
192     } else {
193         document.attachEvent('onreadystatechange', init);
194         window.attachEvent('onload', init);
195     }
196 };
197 Renren.share();
198 }

View Code

将上面的代码保存为renrenShare.js文件.

下面再给我的html测试代码:

 1 <html>
 2     <head>
 3         <title>
 4             分享到人人
 5       </title>
 6         <script type="text/javascript" src="renrenShare.js"></script>
 7
 8     <script type="text/javascript">
 9         function shareClick() {

11             var txt = document.getElementById("content").value;
12             var rrShareParam = {
13                 resourceUrl: 'http://mm.oureda.cn/',  //那这个是什么?
14                 srcUrl: 'http://www.163.com/',   //这个是其中三个的链接的url                pic: 'http://img.yiyuanyi.org/2010/3/11/129127450453593750.jpg',    //这个是要分享的图片
15                 title: '我正在使用某某日历, 天呐, 今天的日程太值得分享了~',
16                 description: txt
17             };
18             rrShareOnclick(rrShareParam);
19         }
20     </script>
21     </head>
22     <body>
23         <textarea id="content" style="overflow:auto;" rows="4" cols="100">
24            8:30  上学
25            10:00  放学
26         </textarea>
27         <br />
28         <br />
29         <a name="xn_share" onclick="shareClick()" type="button_large" href="javascript:;"></a>
30     </body>
31 </html>

下面对代码稍加注释:

1.首先是shareClick里的txt变量.  用这个是为了实现分享时自动读取网页中的一段文本(我这里是读取日程信息), 然后日程我是模拟放在了id='content'的textarea里面. 得到日程信息后, 这个信息会在分享时自动加载到"分享理由"栏里.  这对应上面代码的"description: txt"  .

2.倒数第三行是一个按钮状的分享链接, 关于这个链接的样式是可以自己选择的, 这个在人人API官网可以找到.

3.shareClick()函数里, 有三个链接, 就是那三个后面跟了注释的三行.

pic是你要分享的图片, 其url我是随便在网上找的一张(这个不能是本地路径, 必须放在云端), 实际使用时, 我将用js代码读取我网站里要分享的图片的url再赋值给'pic'.

关于srcUrl 和resourceUrl 就是我的困惑了, 希望路过的大神能稍作停留解答一下:

分享后有三个可点的链接, 但其地址都是srcUrl的值. 所以我有两点疑惑:

1. resourceUrl的作用是什么?

2. 我想要的是点击三个链接中的图片链接时打开图片(因为我打算分享时将信息展示在图片上), 点击另外的打开我想分享的网站. 可是现在三个链接都是指向同一个地址, 我想请教下是否可以将那三个链接的URL区别开.

转载于:https://www.cnblogs.com/tiny-rogue/p/3282511.html

人人API 分享到人人功能 修改版相关推荐

  1. Android百度地图和人人网简单的应用(获取路线,分享到人人)

    现在很多知名网站为广大开发者提供了开放平台,像百度,人人网等等!这里是我根据百度官方提供的百度地图的一个示例,自己写的一个小程序,有如下功能: (1)       定位当前位置(没使用GPS,定位快, ...

  2. php oauth api,PHP实现人人OAuth登录和API调用

    require_once "HttpClient.class.php"; $APIKey = 'dd3ffbf2bd894ca9819f5dbc82c2f39c'; $Secret ...

  3. 运算器和控制器在计算机的作用,运算器和控制器功能作用(修改版).ppt

    运算器和控制器功能作用(修改版) 运算器部件: 是计算机加工处理数据的功能部件是 CPU的重要组成部分. 对数据的加工处理包括: 与.或.非.异或等. ALU是运算器中的核心部件.也是运算器内部传送数 ...

  4. python实现淘宝自动回复_python实现人人自动回复、抢沙发功能

    python实现人人自动回复.抢沙发功能 发布时间:2020-09-17 21:19:08 来源:脚本之家 阅读:59 作者:longshen747 最近人人上看到有好友总是使用软件抢沙发,便决定用P ...

  5. fc天使之翼2020修改版下载_(安卓)无名英雄修改版(生存冒险)——安卓游戏体验分享...

    点击上方蓝字关注我们 一.游戏简介: 游戏名称:无名英雄修改版 游戏类型:动作竞技 游戏平台:安卓 整理时间:2020-5-1 官方网址:不详 游戏心得体验分享 游戏简介 <无名英雄>是一 ...

  6. 自考计算机专业的草根,一个外行草根自学中医的历程和经验分享!人人皆可学,求人不如求己!...

    由 邻居小儿夜里盗汗 想到的 老百姓之悲 昨晚吃晚饭时,和家人聊天,家人在小区里听到不认识的邻居说她们小儿这么大热天,白天运动不怎么出汗,夜里睡觉到是经常出汗,很是羡慕那些反过来的小朋友,这虽然是个小 ...

  7. 广西计算机一级评分标准,广西普通话水平测试评分细则(机测修改版)及评分表...

    <广西普通话水平测试评分细则(机测修改版)及评分表>由会员分享,可在线阅读,更多相关<广西普通话水平测试评分细则(机测修改版)及评分表(10页珍藏版)>请在人人文库网上搜索. ...

  8. 使用友盟SNS_SDK为Android应用加入SNS分享、同步功能

    很多朋友在开发Android应用的过程中,都想加入社会化的分享功能,如将自己的应用使用状态或心得同步到新浪微博.人人网或腾讯微博等.这些社交网络或微博都已经发布了针对开发者的开放平台(关于开放平台的相 ...

  9. Android 仿美团网,大众点评购买框悬浮效果之修改版

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...

最新文章

  1. 标普500指数成分股公司2020年的全年每股收益为110美元,较2019年下跌33%。
  2. tableau双折线图_Tableau可视化之多变条形图
  3. MyBatis中if,where,set标签
  4. git常用命令及冲突解决
  5. html中css二级联动,html二级联动学习笔记
  6. datetime报错 sql脚本_《SQL必知必会》附录A样例表的获取和导入
  7. 厦门银行服务器没有收到证书,FRM证书申请成功后,一直未收到证书该如何做?...
  8. 【README】回溯算法基本框架
  9. Jmeter 时间函数工具汇总
  10. 可以在电脑上在线录制视频GIF的软件,不需要下载安装
  11. 医院信息中心机房建设
  12. Unity3D游戏制作学习记录03——丛林战争
  13. 高手勿进!写给初中级程序员以及还在大学修炼的“准程序员”的成长秘籍
  14. 灰鸽子--木马、后门实验
  15. 甘肃省计算机二级考试试题,2013甘肃省计算机等级考试二级理论考试试题及答案...
  16. 在AbpZero中hangfire后台作业的使用——开启hangfire
  17. k8s多集群搭建istio共享控制平面(多网络)及部署grpc服务分流实践
  18. 使用zxing生成二维码的方法步骤
  19. foobar2k折腾窗口中显示歌词
  20. 中标麒麟操作系统打开主机共享文件夹提示权限不足

热门文章

  1. LCN 分布式事务框架
  2. C语言中 sizeof(数组名) 和 strlen(数组名) 的意义
  3. 灰色预测改进—三角残差拟合_python
  4. 当switch遇到null
  5. Flutter开发环境在Mac上的搭建(iOS和Android图文详细过程)
  6. 信创是什么意思?涉及哪些行业?为什么要发展信创?
  7. Python制作七夕比心表白
  8. 计算机学情问卷调查报告,小学生学情调查问卷及调查分析报告.doc
  9. 通过下拉框中的随机选中项,来决定中午吃什么
  10. lua调用不同lua文件中的函数