使用JavaScript从SharePoint中的当前网站获取子网站

使用JavaScript从SharePoint中的当前网站获取子网站,javascript,sharepoint-online,Javascript,Sharepoint Online,我在自定义导航中写出每个子网站: navigation = function (clientContext, web) { this.webCollection = web.getSubwebsForCurrentUser(null); clientContext.load(web); clientContext.load(this.webCollection, 'Include(Title, Url)'); clientContext.executeQuery

我在自定义导航中写出每个子网站:

navigation = function (clientContext, web) {
    this.webCollection = web.getSubwebsForCurrentUser(null);

    clientContext.load(web);
    clientContext.load(this.webCollection, 'Include(Title, Url)');
    clientContext.executeQueryAsync(Function.createDelegate(navigationSuccess), Function.createDelegate(navigationFailed));
},

navigationSuccess = function () {
  var webEnumerator = this.webCollection.getEnumerator();
    while (webEnumerator.moveNext()) {
        var web = webEnumerator.get_current();
        // Writing out title/url for sub web.
    }
},
在navigationSuccess中,我想检查此子网站是否包含任何子网站。这可能吗?我在get_current()之后尝试了web.get_webs(),但我需要先加载它(在类似于“导航”的新函数中)


如果当前子网站包含任何子网站,则只需检查/计数子网站的数量,感觉就像是一个大过程?

以下示例演示了如何使用SharePoint JSOM检索子网站的数量:

function getWebsCount(parentWeb,success,error) 
{
    var ctx = parentWeb.get_context();
    var webs = parentWeb.get_webs(); //parentWeb.getSubwebsForCurrentUser(null);
    ctx.load(webs);
    ctx.executeQueryAsync(
        function(){
           success(webs.get_count());
        },
        error);
}
用法

var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
getWebsCount(web,function(count){
    console.log(String.format('Sub sites count: {0}',count));
},
function(sender,args){
    console.log(args.get_message());
});