Hitcounter for HTML5 Embedded Video-使用Rest API将用户名,视频标题和查看日期添加到SharePoint 2013列表中

问题描述

我发现并使用了这个奇妙的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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...