Не удается обновить заголовок в настольной версии слова - PullRequest
0 голосов
/ 24 июня 2018

У меня есть Office Addin, и я пытаюсь обновить заголовок документа на рабочем столе. Я пробовал 2 разных способа, и ни один из них не работает на рабочем столе. Он отлично работает в режиме онлайн, но не на рабочем столе.

Word.run(async (context) => {

   var newTitle = document.getElementById("inputTitle") as HTMLInputElement;
   console.log(newTitle.value);
   context.document.properties.title = newTitle.value;

   });

Этот код работает онлайн, но не на рабочем столе. Я также пытался делать это таким образом.

Office.context.document.customXmlParts.getByNamespaceAsync("http://schemas.openxmlformats.org/package/2006/metadata/core-properties", 
function (resultCore) {

   var xmlPart = resultCore.value[0];
   xmlPart.getNodesAsync('*/*', function (nodeResult) {

      for (var i = 0; i < nodeResult.value.length; i++) {

       var node = nodeResult.value[i];
       console.log("BaseName: ")
       console.log(node.baseName);

           if (node.baseName === "title") {

              var newTitle = document.getElementById("inputTitle") as HTMLInputElement;
              console.log("title that you entered: " + newTitle.value);
              console.log(node);

              node.setNodeValueAsync(newTitle.value, { asyncContext: "StateNormal" }, function (data) { });

       }

     }

   });
});

Кто-нибудь знает, почему это не работает, или есть какое-то другое решение моей проблемы?

1 Ответ

0 голосов
/ 25 июня 2018

У меня работает следующий код, в том числе и на рабочем столе. Обратите внимание, что вы должны await Word.run. Кроме того, вы должны загрузить заголовок, а затем выполнить синхронизацию, чтобы убедиться, что вы изменили заголовок в реальном документе, а не просто в объекте прокси в коде панели задач.

await Word.run(async (context) => {
    var newTitle = document.getElementById("inputTitle") as HTMLInputElement;
    console.log(newTitle.value);
    context.document.properties.title = newTitle.value;
    const myProperties = context.document.properties.load("title");
    await context.sync();
    console.log(myProperties.title);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...