在SharePoint 2013中,我尝试通过JavaScript CSOM访问搜索对象。
我想知道可以让我访问“网站设置”下的“搜索设置”的对象。 我尝试在SP对象下查找,但我没有在那里找到任何与搜索相关的对象。
我的目标是通过JavaScript CSOM更改搜索中心网址。
提前致谢!!!
答案 0 :(得分:1)
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());
});
答案 1 :(得分:0)
给定网站的搜索中心网址存储在该网站的属性包中,在RootWeb上您还可以设置该网站的搜索中心网址。
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");
});