SharePoint 2013 中使用 JavaScript Like 和Unlike list item/page/document

SharePoint 2013中新增了很多社交功能,比如用户可以like/unlike 任何一个 list item/page/document,这是一个非常不错的功能。

但有时觉得like/unlike按钮不是很好看,希望用自己的按钮,就需要用JavaScript代码来 Like 和Unlike list item/page/document。

或者在非本级站点客户化显示blog列表等,也需要用JavaScript代码来 Like 和Unlike list item/page/document。

为了实现这个功能,笔者先是尝试直接修改LikesCount 和 LikedBy  , 但是这样做不能从 _api/social.feed/my/Feed中看到动态,这样显然不能达到社交的要求,也尝试过用

             clientContext = SP.ClientContext.get_current();
             feedManager = new SP.Social.SocialFeedManager(clientContext);
             feedManager.likePost('6162164E-5542-4530-9E7B-F3EF4A05D562');
             clientContext.executeQueryAsync(LikeSucceeded, LikeFailed);

但是问题是likePost里面的参数是Socail Thread ID,一般的列表项是没有的。

后来笔者发现了:

http://msdn.microsoft.com/en-us/library/microsoft.office.server.reputationmodel.reputation.setlike.aspx


再通过摸索,笔者找到下面的正确方案(确保页面引用了/_layouts/15/reputation.js):

 

		EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
		var  aContextObject = new SP.ClientContext();  // 此处如果不是当前网站,需要相对或绝对地址作为参数,如: /blog
		    Microsoft.Office.Server.ReputationModel.
    Reputation.setLike(aContextObject, 
                       listGuid,  // 列表的Guid, 如:EDBA153B-7EBB-4242-B842-FCA6E233E11F 
                       itemIntId, // Item的整数id  例如: 1
		        false); // Like 为true, unlike 为false
		aContextObject.executeQueryAsync(
        function () {
            // Do something if successful
        }, function (sender, args) {
            // Do something if error
    });
});

例1 like/unlike当前页面

EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
    Microsoft.Office.Server.ReputationModel.
    Reputation.setLike(aContextObject, 
        _spPageContextInfo.pageListId.substring(1, 37),  
        _spPageContextInfo.pageItemId, false);

    aContextObject.executeQueryAsync(
        function () {
            // Do something if successful
        }, function (sender, args) {
            // Do something if error
    });
});

例2 like/unlike blog子网站的某个帖子

EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function () {
    var aContextObject = new SP.ClientContext('/blog'); // 初始化一个blog 子站点的上下文
    Microsoft.Office.Server.ReputationModel.Reputation.setLike(
    aContextObject,
    'EDBA153B-7EBB-4242-B842-FCA6E233E11F', //  blog子网站下posts列表的Guid
    1, // posts 列表中item的整数id
    false);

    aContextObject.executeQueryAsync(function () {
        alert('like successed');
    }, function (sender, args) {
        alert('like failed');
    });
});


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: JavaScript is a high-level, interpreted programming language that is widely used for front-end web development, server-side scripting, and browser scripting. It is an object-oriented language that is primarily used to create dynamic, interactive, and responsive web pages and applications. JavaScript is an essential technology for building modern web applications and is supported by all major browsers, including Google Chrome, Mozilla Firefox, and Internet Explorer. Some of the key features of JavaScript include: - Event-driven programming: JavaScript is an event-driven language, meaning that the code is executed in response to user events, such as clicking a button, scrolling the page, or hovering over an element. - Dynamic typing: Unlike other programming languages that have strict type checking, JavaScript is a dynamically typed language, meaning that the type of a variable can change during runtime. - Asynchronous programming: JavaScript is well-suited for asynchronous programming, making it ideal for handling tasks that do not block the main thread of the browser, such as making API calls, processing data, or updating the user interface. - Function-based programming: JavaScript is a functional programming language, meaning that functions are first-class citizens in the language and can be used as values and passed as arguments to other functions. Overall, JavaScript is a versatile and widely-used language that is essential for modern web development. ### 回答2: JavaScript(简写为JS),是一种具有事件驱动和对象基础的脚本语言。它是广泛应用于网页开发的一种脚本语言,用于为网页增加交互性和动态效果。JavaScript可以嵌入在HTML代码,通过处理HTML元素,改变网页的内容、样式和行为。 JavaScript是一门解释型语言,不需要编译器即可运行。它的语法与Java类似,但是两者是完全不同的语言。JavaScript是一种弱类型语言,不需要声明变量类型,在运行时根据值的类型自动进行转换。 JavaScript广泛用于网页开发的表单验证、动态生成HTML、网页效果制作、Ajax等方面。通过JavaScript,我们可以监听用户的操作,如点击、鼠标移动等,实现交互式和动态化的网页。 JavaScript还可以通过浏览器提供的API(应用程序接口)和第三方库实现更丰富的功能,如操作DOM(文档对象模型)、获取设备信息、绘制图形等。 随着互联网的发展,JavaScript的重要性日益突出。它不仅仅被应用于网页开发,还被用于跨平台应用程序开发、服务器端开发等方面。 总的来说,JavaScript是一门功能强大并且灵活多变的脚本语言。通过它,我们可以为网页增添各种交互效果,提升用户体验,也可以开发出更为复杂和高效的应用程序。 ### 回答3: JavaScript是一种动态、弱类型的编程语言,常用于前端网页开发。它是一种基于对象和事件驱动的脚本语言,可以通过操作DOM元素和处理用户交互来实现动态效果和页面逻辑。 JavaScript具有以下特点: 1. 简单易学:JavaScript的语法与C语言类似,接近自然语言,学习起来相对容易。 2. 跨平台:JavaScript可以在多种操作系统和浏览器上运行,保证了网页的可移植性和兼容性。 3. 动态性:JavaScript是一种动态语言,可以在运行时动态地修改和生成代码,灵活性很高。 4. 客户端脚本语言:JavaScript主要用于处理浏览器端的行为和事件,可以实现与用户的交互,例如表单验证、动态图像切换等。 5. 弱类型语言:JavaScript的变量类型可以在运行时改变,不需要显式地声明变量的类型,编写起来更加灵活。 6. 支持特性:JavaScript支持面向对象编程、函数式编程和过程式编程,内置了许多常用的功能和API,如字符串处理、数学计算等。 7. DOM操作:JavaScript可以通过访问和操作DOM(文档对象模型)来实现对网页元素的增删改查,从而实现页面的动态改变和交互效果。 总的来说,JavaScript是一种功能强大、简单易学的脚本语言,可以实现网页的动态效果、用户交互和页面逻辑处理。它已成为互联网开发的重要工具之一,为前端开发带来了更多可能性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值