如何使用SharePoint 2013 REST API从当前主要版本(非草稿)获取页面标题
我正在使用SharePoint REST API _api/web/GetFileByServerRelativeUrl'/Pages/file1.aspx'/majorversion 要获取文件的主要版本,我还需要获取与该主要版本关联的页面标题。草案版本的标题与主要出版版本不同。 我一直在努力 _api/web/GetFileByServerRelativeUrl'/Pages/file1.aspx'/versionsmajorversion 或者_api/web/GetFileByServerRelativeUrl'/Pages/file1.aspx'?$select=title,versions&$filter=IsCurrentVersion%20eq%20true 但是,与主版本相关的标题没有成功,查询只返回最新草稿版本的标题。如何使用SharePoint 2013 REST API从当前主要版本(非草稿)获取页面标题,rest,sharepoint-2013,Rest,Sharepoint 2013,我正在使用SharePoint REST API _api/web/GetFileByServerRelativeUrl'/Pages/file1.aspx'/majorversion 要获取文件的主要版本,我还需要获取与该主要版本关联的页面标题。草案版本的标题与主要出版版本不同。 我一直在努力 _api/web/GetFileByServerRelativeUrl'/Pages/file1.aspx'/versionsmajorversion 或者_api/web/GetFileByServe
我还尝试使用“api/web/GetFileByServerRelativeUrl”“vti\U history/1536/Pages/file1.aspx”,但收到HTTP 500错误。有什么建议吗 您可以在中检查shawnadrockleonard共享的JS函数
谢谢你,李。即使它是通过从HTML中检索内容来工作的,是否还有其他通过api调用获取页面标题信息的方法?
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();
}