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