0

我正在爲SharePoint網站創建編寫HTML和JavaScript的自定義頁面。我想將文檔庫嵌入到我在SharePoint設計器中編寫的自定義html中。SharePoint Rest文檔庫

我沒有找到一種方法來輕鬆地將文檔庫嵌入到自定義html中,但是在某些文檔中偶然發現了其他api。我想我可以使用它,並在html中編寫我自己的ajax應用程序,供用戶導航文檔庫。

我目前正在與此的javascrip嘗試只是爲了看看我能拉HTML或JSON文檔庫的內容:

<script type="text/javascript"> 
var folderUrl = "x/x/x/testDocumentLibrary/Forms/AllItems.aspx"; 
var url = _spPageContextInfo.webServerRelativeUrl + "/_api/Web/GetFolderByServerRelativeUrl('" + folderUrl + "')?$expand=Folders,Files"; 

$.getJSON(url,function(data,status,xhr){ 

    for(var i = 0; i < data.Files.length;i++){ 
     console.log(data.Files[i].Name);  
    } 

    for(var i = 0; i < data.Folders.length;i++){ 
     console.log(data.Folders[i].Name);  
    } 
}); 
</script> 

我不知道如果我使用正確的網址爲folderUrl變量。

爲了進行一些測試_spPageContextInfo.webServerRelativeURL拉什麼?我試圖看看我是否可以反向工作,並首先在SP函數調用時手動創建URL。

回答

1

示例代碼中的folderUrl變量應該以庫的路徑結尾;直到/Forms/AllItems.aspx,因此/x/x/x/testDocumentLibrary其中/x/x/x/是庫駐留的站點的服務器相對路徑。

_spPageContextInfo對象提供相對於服務器的URL,一個的兩種變化當前站點(在SharePoint行話叫做「網絡」),一個用於當前站點(在SharePoint行話稱之爲「位點」) 。適當地,這些屬性被標記爲webServerRelativeURLsiteServerRelativeURL。這兩個都是與服務器相關的,這意味着它們排除了域名的第一部分。 (而不是https://constoso.com/sites/stackoverflow他們會給你/sites/stackoverflow。)

對於REST調用,您可能需要絕對URL,而不是服務器相對URL。您可以通過_spPageContextInfo的房源webAbsoluteURLsiteAbsoluteURL訪問網站和網站的絕對URL。

如果您正在訪問的列表/庫位於運行REST的當前網站上,請使用webAbsoluteURL屬性。

+0

如果我正在構建的頁面,我剛剛在設計器中複製了一個較舊的頁面,然後重新命名它,這一切工作還是需要先在共享點網站創建頁面? – searayman

+0

它應該工作,假設你將它複製到同一個站點。有關'folderUrl'變量中字符串格式的詳細信息,請參閱我的更新回答。 – Thriggle