4

在 SharePoint 2013 中,我试图通过 JavaScript CSOM 访问搜索对象。

我想知道可以让我访问站点设置下的搜索设置的对象。我尝试在 SP 对象下查找,但在那里没有找到任何与搜索相关的对象。

我的目标是通过 JavaScript CSOM 更改搜索中心 URL。

提前致谢!!!

4

2 回答 2

1

如何通过 CSOM 在 SharePoint 2013 中设置搜索设置

 function updateSearchSettings(searchSenterUrl,resultsPageUrl,Success,Error) {
   var context = SP.ClientContext.get_current();
   var web = context.get_site().get_rootWeb();
   var props =  web.get_allProperties();

   props.set_item("SRCH_ENH_FTR_URL_SITE",searchSenterUrl);
   props.set_item("SRCH_SB_SET_SITE",JSON.stringify({"Inherit":false,"ResultsPageAddress":resultsPageUrl,"ShowNavigation":false}));
   web.update();

   context.load(props);
   context.executeQueryAsync(
     function () {
        var searchCenterUrl = props.get_item("SRCH_ENH_FTR_URL_SITE");
        var searchPageProps = JSON.parse(props.get_item("SRCH_SB_SET_SITE"));
        Success(searchCenterUrl,searchPageProps);
     },
     Error
   );
}


//Usage
updateSearchSettings("/sites/search/pages2","/sites/search/pages/default.aspx",function(searchCenterUrl,searchPageProps){
         console.log('Search Center Url:' + searchCenterUrl);
         console.log('Results Page Url:' + searchPageProps.ResultsPageAddress);
   },
   function (sender, args) {
        console.log("Error: " + args.get_message());
   });
于 2014-02-28T13:17:11.497 回答
0

给定网站的搜索中心 URL 存储在该网站的属性包中,在 RootWeb 上,您还可以设置站点的搜索中心 URL。

2013 年的密钥与 2010 年相比有所变化,现在分别为 SRCH_ENH_FTR_URL_WEB 和 SRCH_ENH_FTR_URL_SITE。设置它们的代码是这样的:

var ctx = new SP.ClientContext.get_current();
var web = ctx.get_site().get_rootWeb();
var props =  web.get_allProperties();
props.set_item("SRCH_ENH_FTR_URL_SITE","/sites/search/pages");
web.update();     
ctx.load(web);     
ctx.executeQueryAsync(function () {
    alert("Search Settings Modified");
 },
 function() {
  alert("failed");
});
于 2013-11-29T21:19:35.590 回答