コンテキストが子サイト、JavaScript または JQuery にある場合にルート サイト コレクションの URL を取得する方法。
5 に答える
クライアントオブジェクトモデルを使用して以下を使用できます
var clientContext = new SP.ClientContext();
var owebsite = clientContext.get_site.get_rootWeb();
クライアント オブジェクト モデルがなければ、次を使用できます。
var siteCollectionPath= _spPageContextInfo.siteServerRelativeUrl;
var clientContext = new SP.ClientContext.get_current();
this.web = clientContext.get_site().get_rootWeb();
それは私のために働いています。
ルート Web またはルート サイト コレクションのことですか?
これにより、ルート サイト コレクションが取得されます。
_spPageContextInfo.siteAbsoluteUrl.replace(_spPageContextInfo.siteServerRelativeUrl, _spPageContextInfo.siteServerRelativeUrl == \"/\" ? \"/\": \"\") + \""
私の投稿から: http://www.rdacorp.com/2015/03/alternate-solution-alternate-css-url-sharepoint-2013-online/
利用可能な情報を使用してクライアントオブジェクトモデルなしでURLを取得し、そこから文字列を解析できます。Client-Object モデルほど堅牢ではありませんが、単純なタスクの場合は大幅に複雑ではありません。
window.location.href
...完全なウィンドウ URL を提供します (例: " http://sitecollection.com/sites/mysite/Lists/myList/NewForm.aspx?ContentTypeId=0x01006AC2C39AA621424EBAD9C2AC8A54F8B9007B626ABEEB66E34196C46E13E0CA41A2&ContentTypeName=xxxx ")
L_Menu_BaseUrl
または
_spPageContextInfo.siteServerRelativeUrl
...(Jinxed が指摘するように) 相対 URL が表示されます (例: "/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());
};