我正在创建一个自定义页面,为SharePoint站点编写HTML和javascript . 我想在我的自定义html中嵌入文档库,我在SharePoint设计器中编写 .
我没有找到一种方法可以轻松地将文档库嵌入到自定义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函数调用 .
1 回答
示例代码中的
folderUrl
变量应以库的路径结束;一直到/Forms/AllItems.aspx
,所以/x/x/x/testDocumentLibrary
其中/x/x/x/
是库所在站点的服务器相对路径 ._spPageContextInfo
对象提供两种服务器相对URL的变体,一种用于当前站点(在SharePoint术语中称为"web"),另一种用于当前网站集(在SharePoint术语中称为"site") . 适当地,这些属性标记为webServerRelativeURL
和siteServerRelativeURL
. 这两者都是服务器相关的,这意味着它们排除了域名的第一部分 . (而不是https://constoso.com/sites/stackoverflow
他们会给你/sites/stackoverflow
. )对于REST调用,您可能需要绝对URL,而不是服务器相对URL . 您可以通过
_spPageContextInfo
的属性webAbsoluteURL
和siteAbsoluteURL
访问网站和网站的绝对网址 .如果您正在访问的列表/库位于运行REST的当前站点上,请使用
webAbsoluteURL
属性 .