javascript - 使用javascript在sharepoint中获取文档集路径
问题描述
在 sharepoint online 上,我有一个文档(id=123)。该文档位于使用 javascript 的文档集中。当我尝试查找该文档集的路径时,出现错误。
我的代码是:
var item;
var folder;
ExecuteOrDelayUntilScriptLoaded(editLinks, "sp.js");
function editLinks()
{
getItemParent(123);
}
function getItemParent(itemID)
{
var clientContext = new SP.ClientContext();
var web = clientContext.get_web();
var targetList = web.get_lists().getByTitle([List Name]);
item = targetList.getItemById(itemID);
clientContext.load(item, 'DisplayName');
clientContext.load(item, 'Folder');
folder = item.get_folder();
clientContext.load(folder);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
console.log(item.get_displayName());
console.log(folder.get_serverRelativeUrl());
}
function onQueryFailed() {
console.log("Query Failed");
}
当我运行它时 item.get_displayName() 工作正常,但是在尝试获取 serverRelativeUrl 时会引发以下错误:
sp.runtime.js:2 Uncaught Error: Object reference not set to an instance of an object on server. The object is associated with property Folder.
解决方案
这是我的测试脚本供您参考。
<script type="text/javascript">
var item;
//var folder;
ExecuteOrDelayUntilScriptLoaded(editLinks, "sp.js");
function editLinks() {
getItemParent(6);
}
function getItemParent(itemID) {
var clientContext = new SP.ClientContext();
var web = clientContext.get_web();
var targetList = web.get_lists().getByTitle("LibDS");
item = targetList.getItemById(itemID);
//folder = item.get_folder();
clientContext.load(item);
//clientContext.load(item, 'DisplayName');
//clientContext.load(item, 'Folder');
//clientContext.load(folder);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
console.log(item.get_fieldValues("FileDirRef").FileDirRef);
//console.log(folder.get_serverRelativeUrl());
}
function onQueryFailed() {
console.log("Query Failed");
}
</script>
推荐阅读
- javascript - 发生onclick事件时如何将每个段落存储到javascript数组中?
- javascript - netlify lambda 函数中的 Dialogflow
- rest - 托管 Web 服务时我的 web.config 文件有问题
- javascript - 如何在 Dynamics CRM 中操作 HTML-Web 资源
- google-apps-script - 使用 Google 应用脚本将电子邮件标记为已读
- javascript - 比较两个具有共同字段的数组,然后推送到具有相应分组字段的新数组
- sql - 在 Redshift 中查找具有特定值的单元格的脚本
- php - 如何在 laravel dd 函数中访问特定的数组值
- mysql - 从 MySQL 中的所有行中获取 SUM 另一个表
- docker - Docker for Windows - 无法列出节点:获取 https://kubernetes.docker.internal:6443/api/v1/nodes:禁止