我正在使用SharePoint REST API
_api/web/GetFileByServerRelativeUrl('/Pages/file1.aspx')/majorversion
获取文件的主要版本,但我还需要获取与该主要版本相关联的页面标题。草稿版本的标题与主要发布版本不同。 我一直在尝试
_api/web/GetFileByServerRelativeUrl('/Pages/file1.aspx')/versions(majorversion)
或_api/web/GetFileByServerRelativeUrl('/Pages/file1.aspx')?$select=title, versions&$filter=IsCurrentVersion%20eq%20true
但与主要版本相关的标题没有运气,查询只返回最新草稿版本的标题。
我也尝试使用_api/web/GetFileByServerRelativeUrl('_vti_history/1536/Pages/file1.aspx')
,但收到HTTP 500错误。有什么建议?
答案 0 :(得分:0)
您可以在github
中检查shawnadrockleonard共享的JS函数function getListItemByVersionPage(listWebUrl, listId, listItemId, fieldName) {
var glibvpdef = new jQuery.Deferred();
var versionsUrl = listWebUrl + '/_layouts/versions.aspx?list=' + listId + '&ID=' + listItemId;
jQuery.get(versionsUrl)
.done(function (data) {
var entries = [];
var versionList = $(data).find('table.ms-settingsframe');
if (typeof (versionList) !== typeof (undefined) && versionList !== null) {
versionList.find('tbody > tr').each(function (i, trval) {
// pulls every 2 rows
if (i > 0 && (i - 1) % 2 == 0) {
try {
var verRow = $(this); //get version row
var versionLabel = verRow.find('td:first').html().trim();
var versionDateElement = verRow.find('table[ctxname=\"ctxVer\"] a'); // Date for modification
var versionUserElement = verRow.find('.ms-imnSpan a:nth-child(2)'); // User for Modification
if (versionLabel !== ""
&& (versionDateElement !== null && versionDateElement.length > 0)
&& (versionUserElement !== null && versionUserElement.length > 0)) {
var versionDate = versionDateElement.html().trim();
var versionUser = versionUserElement.html().trim();
var propsRow = verRow.next(); //get properties row
var properties = propsRow.find("table[role=\"presentation\"] tr").map(function (index, val) {
var trproperty = jQuery(val);
if (val.id.indexOf(fieldName) !== -1) {
var entryProperties = {
id: val.id,
title: trproperty.find("td:first").html().trim(),
FieldValue: trproperty.find("td:nth-child(2)").html().trim()
};
return (entryProperties);
}
});
var entry = {
Label: versionLabel,
Modified: versionDate,
Editor: versionUser,
vprops: properties
};
entries.push(entry);
}
} catch (error) {
console.log("parse error " + error.message);
}
}
});
}
glibvpdef.resolve(entries);
})
.fail(function (sender, args) {
glibvpdef.reject(sender, args);
});
return glibvpdef.promise();
}