我正在创建一个为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
变量的正确网址。
为了进行一些测试_spPageContextInfo.webServerRelativeURL
拉什么?我试图看看我是否可以向后工作并首先手动创建URL而不使用SP函数调用。
答案 0 :(得分:1)
示例代码中的folderUrl
变量应该以库的路径结束;在/Forms/AllItems.aspx
之前的所有内容,所以/x/x/x/testDocumentLibrary
其中/x/x/x/
是图书馆所在网站的服务器相对路径。
_spPageContextInfo
对象提供两种服务器相对URL的变体,一种用于当前站点(称为&#34; web&#34;在SharePoint术语中),另一种用于当前站点集合< / em>(在Google术语中称为&#34; site&#34;)。适当地,这些属性标记为webServerRelativeURL
和siteServerRelativeURL
。这两者都是服务器相关的,这意味着它们排除了域名的第一部分。 (而不是https://constoso.com/sites/stackoverflow
他们会给你/sites/stackoverflow
。)
对于REST调用,您可能需要绝对URL,而不是服务器相对URL。您可以通过_spPageContextInfo
的媒体资源webAbsoluteURL
和siteAbsoluteURL
访问网站和网站绝对网址。
如果您正在访问的列表/库位于运行REST的当前站点上,请使用webAbsoluteURL
属性。