我正在创建一个自定义页面,为 SharePoint 网站编写 HTML 和 javascript。我想将文档库嵌入到我在 SharePoint 设计器中编写的自定义 html 中。
我还没有找到一种在自定义 html 中轻松嵌入文档库的方法,但确实偶然发现了一些关于 REST 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
变量是否使用了正确的 url。
为了进行一些测试,_spPageContextInfo.webServerRelativeURL
正在拉动什么?我正在尝试查看是否可以向后工作并首先手动创建 URL,而不调用 SP 函数。
最佳答案
示例代码中的 folderUrl
变量应以库的路径结尾;直到 /Forms/AllItems.aspx
为止的所有内容,因此 /x/x/x/testDocumentLibrary
其中 /x/x/x/
是库所在站点的服务器相对路径。
_spPageContextInfo
对象提供服务器相对 URL 的两种变体,一种用于当前网站(在 SharePoint 术语中称为“web”),另一种用于当前网站集合(在 SharePoint 行话中称为“网站”)。这些属性适本地标记为 webServerRelativeURL
和 siteServerRelativeURL
。这两个都是与服务器相关的,这意味着它们排除域名的第一部分。 (他们将为您提供 /sites/stackoverflow
,而不是 https://constoso.com/sites/stackoverflow
。)
对于 REST 调用,您可能需要绝对 URL,而不是相对于服务器的 URL。您可以通过 _spPageContextInfo
的属性 webAbsoluteURL
和 siteAbsoluteURL
访问网站和网站绝对 URL。
如果您要访问的列表/库位于运行 REST 的当前站点上,请使用 webAbsoluteURL
属性。
关于javascript - SharePoint Rest 文档库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985011/