当上下文位于子站点、JavaScript 或 JQuery 中时,如何获取根站点集合 url。
5 回答
您可以使用客户端对象模型使用以下内容
var clientContext = new SP.ClientContext();
var owebsite = clientContext.get_site.get_rootWeb();
如果没有客户端对象模型,您可以使用以下
var siteCollectionPath= _spPageContextInfo.siteServerRelativeUrl;
你的意思是根网站还是根网站集?
这将为您提供根网站集:
_spPageContextInfo.siteAbsoluteUrl.replace(_spPageContextInfo.siteServerRelativeUrl, _spPageContextInfo.siteServerRelativeUrl == \"/\" ? \"/\": \"\") + \""
从我的帖子:http ://www.rdacorp.com/2015/03/alternate-solution-alternate-css-url-sharepoint-2013-online/
var clientContext = new SP.ClientContext.get_current();
this.web = clientContext.get_site().get_rootWeb();
它对我有用。
您可以通过使用可用信息和字符串从那里解析它来获取没有客户端对象模型的 url。不像客户端对象模型那样健壮,但对于简单任务来说复杂性要低得多。
window.location.href
...为您提供完整的窗口 URL(例如“ http://sitecollection.com/sites/mysite/Lists/myList/NewForm.aspx?ContentTypeId=0x01006AC2C39AA621424EBAD9C2AC8A54F8B9007B626ABEEB66E34196C46E13E0CA41A2&ContentTypeName=xxxx ”)
L_Menu_BaseUrl
或者
_spPageContextInfo.siteServerRelativeUrl
...(正如 Jinxed 指出的那样)将为您提供相对网址(例如“/sites/mysite”)
下面的示例脚本显示了如何检索根 Web。onQuerySucceedSample 函数提醒根站点标题。
getRootWeb = function () {
//Get and load a reference to the root web of the current site collection.
var ctx = new SP.ClientContext.get_current();
var site = ctx.get_site();
this.rootWeb = site.get_rootWeb();
ctx.load(this.rootWeb);
//Ask SharePoint to pull data for us
ctx.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceed),Function.createDelegate(this, this.onQueryFailed));
};
//Function executed on success
onQuerySucceed = function () {
alert(this.rootWeb.get_title());
};
//Function executed on failure
onQueryFailed = function (sender, args) {
alert('Unable to retrieve data from the SharePoint. Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
};