2013-03-08 48 views
0

我想使用CSOM(客戶端對象模型)訪問SharePoint 2013站點設置→主頁面/導航設置等。從JavaScript或REST服務或Web服務,我可以從Javascript調用。如果此類API /對象可用於SharePoint 2013,我可以獲取指針嗎?使用CSOM(客戶端對象模型)訪問SP2013站點設置 - >主頁面/導航設置等

更具體地說:我想訪問並且將網站設置→導航(在外觀和感覺下)→全局導航和當前導航改爲「結構導航」而不是「託管導航」。我想要使​​用CSOM(Javascript/REST/Web服務)來實現這一點。我不想使用服務器端對象模型。設置母版頁

+0

我認爲這是距離客戶端對象模型最近的東西:http://code.msdn.microsoft.com/SharePoint-2013-Assign-new-5c19062b。我期望,也應該可以從JavaScript做到。如果您可以更詳細地指定您的問題,也許我將能夠提供更多幫助。 – 2013-03-09 23:20:39

+0

非常感謝@Marek Kembrowski !!! 讓我詳細解釋我的問題: 我想訪問並更改網站設置 - >導航(在外觀和感覺下) - >全局和當前導航爲「結構導航」而不是「託管導航」。 我想使用CSOM(Javascript/REST/WebSErvice)來實現這一點。我沒有任何選擇使用服務器端或管理對象模型。 我希望這可能會讓你更仔細地看待實際需求。 再次感謝! nks – nks 2013-03-11 23:45:46

+0

在這種情況下,我不知道任何方式來實現這一點(我認爲沒有任何使用JavaScript/Web服務)。 – 2013-03-12 07:36:59

回答

1

工作完美腳本:

$(文件)。就緒(函數(){jQuery的 ( 'CMDSET')點擊(函數(){

var scriptBase = _spPageContextInfo.webAbsoluteUrl + "/_layouts/15/"; 

    $.getScript(scriptBase + "sp.runtime.js", function() { 

     $.getScript(scriptBase + "sp.js", function() { 

      $.getScript(scriptBase + "sp.core.js", sharePointReady); 

     }); 
    }); 

}); 

});

// create page-level variables to hold client context and web 
var context; 
var web; 
var masterurl; 
var site; 
function sharePointReady() { 

// assign values to page-level variables 
context = new SP.ClientContext.get_current(); 
web = context.get_web(); 

// provide CSOM with instructions to load info about current web 


context.load(web, 'ServerRelativeUrl'); 
web.set_customMasterUrl(L_Menu_BaseUrl + '/_catalogs/masterpage/seattle.master'); 
web.set_masterUrl(L_Menu_BaseUrl + '/_catalogs/masterpage/seattle.master'); 
web.update(); 

context.executeQueryAsync(function() { 

    alert("Starting Master Page Setting......"); 
    masterurl = web.get_serverRelativeUrl() + "/_catalogs/masterpage/seattle.master"; 
    alert(masterurl); 
    alert("Master Page is Set Successfully!!!"); 

}, function (sender, args) { 

    alert("Error: " + args.get_message()); 

}); 

}

0

在SharePoint 2013中引入了一個新的SP.Publishing.Navigation名稱空間(部分SharePoint Publishing JavaScript Library)。 特別是用於管理髮佈網站的導航設置的WebNavigationSettings class

下面的例子演示瞭如何設置全球導航顯示Structural Navigation

function configureNavigation() 
{ 
    var ctx = SP.ClientContext.get_current();   
    var web = ctx.get_web(); 
    var webNavSettings = new SP.Publishing.Navigation.WebNavigationSettings(ctx,web); 

    var navigation = webNavSettings.get_globalNavigation(); 
    navigation.set_source(SP.Publishing.Navigation.StandardNavigationSource.portalProvider); //set to Structural Navigation 
    webNavSettings.update(); 

    ctx.executeQueryAsync(
     function(){ 
      console.log("Navigation settings have been updated successfully"); 
     },function(sender,args){  
      console.log(args.get_message()); 
     }); 
} 

要點:

用於
var scriptBase = _spPageContextInfo.webAbsoluteUrl + "/_layouts/15/"; 
$.when(
    $.getScript(scriptBase + "sp.js"), 
    $.getScript(scriptBase + "sp.publishing.js"), 
    $.Deferred(function(deferred){ 
     $(deferred.resolve); 
    }) 
).done(function(){ 
    configureNavigation();  
});