Пример кода Jsom для вашей справки:
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="/_layouts/15/sp.runtime.js"></script>
<script src="/_layouts/15/sp.js"></script>
<script src="/_layouts/15/sp.publishing.js"></script>
<script type="text/javascript">
$(document).ready(function() {
createPublishingPage();
});
var oWeb, clientContext, pageLayoutitem;
function createPublishingPage() {
//Get the client context,web and list object(Master Page Gallery)
clientContext = new SP.ClientContext.get_current();
oWeb = clientContext.get_web();
var oList = oWeb.get_lists().getByTitle('Master Page Gallery');
//Get the page layout by ID using which we will create a publishing page
pageLayoutitem = oList.getItemById(867);
//Load the client context and execute the batch
clientContext.load(oWeb);
clientContext.load(pageLayoutitem);
clientContext.executeQueryAsync(QuerySuccess, QueryFailure);
}
function QuerySuccess() {
//Create Publishing Page using PublishingPageInformation object
var newPublishingPage = SP.Publishing.PublishingWeb.getPublishingWeb(clientContext, oWeb);
var pageInfo = new SP.Publishing.PublishingPageInformation();
pageInfo.set_name("New Publishing Page.aspx");
pageInfo.set_pageLayoutListItem(pageLayoutitem);
newPage = newPublishingPage.addPublishingPage(pageInfo);
console.log(newPage);
var wikipage = newPage.get_listItem();
console.log(wikipage);
wikipage.set_item("Title","test");
wikipage.update();
clientContext.load(newPage);
clientContext.load(wikipage);
clientContext.executeQueryAsync(SecondQuerySuccess, SecondQueryFailure);
}
function QueryFailure(sender, args) {
console.log('Request failed' + args.get_message());
}
function SecondQuerySuccess(sender, args) {
console.log("Publishing page created successfully.");
}
function SecondQueryFailure(sender, args) {
console.log('Request failed' + args.get_message());
}
</script>
Для pageLayoutitem = oList.getItemById (867), пожалуйста, замените реальным идентификатором макета страницы в вашей среде. Галерея главных страниц. Я использовал "ArticleLeft.aspx" для теста, идентификатор 867: