2013-08-20 43 views

回答

2

您可以使用下面的使用客戶端對象模型

var clientContext = new SP.ClientContext(); 
var owebsite = clientContext.get_site.get_rootWeb(); 

沒有客戶端對象模型,你可以使用下面的

var siteCollectionPath= _spPageContextInfo.siteServerRelativeUrl; 
+0

我試過這個var siteCollectionPath = _spPageContextInfo.siteServerRelativeUrl; alert(siteCollectionPath);它給錯誤_spPageContextInfo沒有定義。我在團隊網站中使用自定義母版頁。並試過這個它給JS錯誤...我錯過了什麼 – user388969

1
var clientContext = new SP.ClientContext.get_current(); 
this.web = clientContext.get_site().get_rootWeb(); 

它爲我工作。

0

通過使用可用信息和字符串從那裏解析它,您可以獲得沒有客戶端對象模型的url。不如客戶端對象模型那麼健壯,但對於簡單任務來說要複雜得多。

window.location.href 

...給你完整的窗口網址(如 「http://sitecollection.com/sites/mysite/Lists/myList/NewForm.aspx?ContentTypeId=0x01006AC2C39AA621424EBAD9C2AC8A54F8B9007B626ABEEB66E34196C46E13E0CA41A2&ContentTypeName=xxxx」)

L_Menu_BaseUrl 

或者

_spPageContextInfo.siteServerRelativeUrl 

...(如不幸了所指出的)會給你的相對URL(例如「/ sites/mysite」)

0

下面的示例腳本顯示瞭如何檢索根網站。 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()); 
};