簡體   English   中英

使用JavaScript獲取SharePoint頁面的視圖數

[英]To get number of views of a SharePoint page using JavaScript

我正在嘗試檢索SharePoint頁面的視圖數。 在Google上搜索后,我發現了一個JavaScript,該JavaScript在ViewLifeTime屬性的幫助下使用JavaScript獲取了視圖數。

以下是JavaScript代碼供參考:-

var context;
    var web;
    var list;
    var currentItem;
function get_Views(){ 
  context = new SP.ClientContext.get_current();
    web = context.get_web();
    list = web.get_lists().getById(_spPageContextInfo.pageListId);
    currentItem = list.getItemById(_spPageContextInfo.pageItemId)
    context.load(currentItem);
    context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}

function onQuerySucceeded() {
    var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(context);
    keywordQuery.set_queryText('PageGuid:"{' + currentItem.get_fieldValues("UniqueId").UniqueId.toString() + '}"');
    var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(context);
    results = searchExecutor.executeQuery(keywordQuery);
    context.executeQueryAsync(SearchDone, onQueryFailed)
}

function SearchDone() {
    var viewCount = results.m_value.ResultTables[0].ResultRows[0].ViewsLifeTime;
    alert(viewCount);
   //Use JQuery to show the viewCount on the page
}

function onQueryFailed(sender, args) {
    //Error Logging
}

但這在以下行給了我一個錯誤:

var viewCount = results.m_value.ResultTables[0].ResultRows[0].ViewsLifeTime;

錯誤:-

未捕獲的TypeError:無法讀取未定義的屬性'ViewsLifeTime'

調試后,我發現ResultTables中沒有ResultRows。

當我能夠在SharePoint網站上看​​到視圖數時,此錯誤的原因可能是什么?

任何建議都是可取的。

加載sp.js后,嘗試包裝腳本,

ExecuteOrDelayUntilScriptLoaded(customfunction, "sp.js");
function customfunction(){
//your code logic
}

更新:

您可以嘗試以下代碼。

<script type="text/javascript">
        ExecuteOrDelayUntilScriptLoaded(customfunction, "sp.js");
        function customfunction() {
            SP.SOD.registerSod('sp.search.js', "/_layouts/15/sp.search.js");
            SP.SOD.executeFunc('sp.search.js', 'Microsoft.SharePoint.Client.Search.Query.KeywordQuery', function () {
                var context;
                var web;
                var list;
                var currentItem;
                function get_Views() {
                    context = new SP.ClientContext.get_current();
                    web = context.get_web();
                    list = web.get_lists().getById(_spPageContextInfo.pageListId);
                    currentItem = list.getItemById(_spPageContextInfo.pageItemId)
                    context.load(currentItem);
                    context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
                }

                function onQuerySucceeded() {
                    var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(context);
                    keywordQuery.set_queryText('PageGuid:"{' + currentItem.get_fieldValues("UniqueId").UniqueId.toString() + '}"');
                    var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(context);
                    results = searchExecutor.executeQuery(keywordQuery);
                    context.executeQueryAsync(SearchDone, onQueryFailed)
                }

                function SearchDone() {
                    var viewCount = results.m_value.ResultTables[0].ResultRows[0].ViewsLifeTime;
                    alert(viewCount);
                    //Use JQuery to show the viewCount on the page
                }

                function onQueryFailed(sender, args) {
                    alert(args);
                }
                get_Views();
            })
        }
    </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM