问题描述
我发现并使用了这个奇妙的Rest API脚本,为我的SharePoint网站页面创建了Hitcounter,该页面的功能与广告一样。它将页面URL,查看者的姓名和日期添加到SharePoint列表中,并在网站页面上的div中显示计数。当查看者/访问者选择“播放”按钮以查看显示在网站页面上的嵌入式HTML5视频时,我已经尝试了好几天才能使此工作生效。对于如何修改提供的Rest API脚本以将视频定位到页面而非网站上的视频,我将不胜感激。在这方面的任何帮助将不胜感激。
function loadImages() {
jQuery(document).ready(function(){
console.log('Enterned');
ExecuteOrDelayUntilScriptLoaded(getLoggedInUser,"sp.js");
hitCounter();
});
}
function hitCounter() {
ExecuteOrDelayUntilScriptLoaded(function(){
var LoggedInName;
var URLLink = window.location.href.toLowerCase();
getLoggedInUser().done(function(LoggedInNameTemp){
LoggedInName = LoggedInNameTemp;
checkCounterVal(function(retCntrVal) {
var clientContext = new SP.ClientContext.get_current();
var oList = clientContext.get_web().get_lists().getByTitle('HitCounter');
var itemCreateInfo = new SP.ListItemCreationinformation();
var oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title',"PageVisited");
oListItem.set_item('URL',URLLink);
oListItem.set_item('Counter',retCntrVal+1);
oListItem.set_item('Time',new Date($.Now()));
oListItem.set_item('User',LoggedInName);
oListItem.update();
clientContext.load(oListItem,'Include(Title,URL,Counter,Time,User)');
clientContext.executeQueryAsync(Function.createDelegate(this,onQuerySucceeded),Function.createDelegate(this,onQueryFailed));
}); //checkCounterVal closed
}).fail(function(error){
alert(error.get_message());
}); //getLoggedInUser closed
},"SP.JS");
}
function onQuerySucceeded() {
//alert("Page visit value increased by 1");
}
function onQueryFailed(sender,args) {
//alert('Request Failed to save page visit counter: ' + args.get_message() + ' \n and \n ' + args.get_stackTrace());
}
function getLoggedInUser(listTitle,propertiesToInclude)
{
//TimeCreated
var clientContext = new SP.ClientContext.get_current();
currentUser = clientContext.get_web().get_currentUser();
clientContext.load(currentUser);
//clientContext.executeQueryAsync(Function.createDelegate(this,onRetUsrQuerySucceeded),onRetUsrQueryFailed));
var d = $.Deferred();
clientContext.executeQueryAsync(function() {
var result = currentUser.get_title();
d.resolve(result);
},function(sender,args){
d.reject(args);
});
return d.promise();
}
function checkCounterVal(callback) {
var retvarNm = 0;
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('HitCounter')/Items?$select=Counter&$top=1&$orderby=Created desc",method: "GET",cache: false,headers: { "accept": "application/json;odata=verbose" },success: function (data) {
for (var i = 0; i < data.d.results.length; i++) {
if(data.d.results[i].Counter != null) {
retvarNm = data.d.results[i].Counter;
$("#pageVisitCount").text("Page Hit: " + retvarNm);
}
}
callback(retvarNm);
},error: function (data) {
alert("Failed to check counter");
}
});//ajax closed
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)