Я так понимаю, это также работает правильно, когда документ заканчивается контролем содержимого в виде простого текста? :)
ю, что это не вопрос, но меня послал сюда Рик Киркхэм изВоти, видимо, спрашивающий о SO - это способ регистрировать ошибки для продуктов Microsoft :-p
Когда я используюinsertOoxml
с параметром «заменить» Word добавит дополнительный контент в конце. Например, при использовании следующего кода вСкриптовая лаборатория, с новым, пустым документом word:
$("#run").click(run);
function run() {
Word.run(function (context) {
var ooxml = context.document.body.getOoxml();
return context.sync().then(function () {
console.log(ooxml.value.length);
context.document.body.insertOoxml(ooxml.value, Word.InsertLocation.replace);
return context.sync();
});
});
}
Каждый раз, когда вы запускаете этот код, слово document получит дополнительный абзац в конце тела. Это становится безумным, когда документ заканчивается контролем содержимого: возьмите новый документ, вставьте новый элемент управления расширенного текста. Инициированиеrun
дублирует элемент управления контентом и вставит его внутрь себя (таким образом, у вас есть два элемента управления контентом, один из которых содержится в другом). Нажатие кнопкиrun
пару раз создаст много вложенных элементов управления контентом и замедлит Word для сканирования. Вставка элемента управления содержимым в виде простого текста и двойной запуск «run» приведут к падению слова (похоже, что разыменование нулевого указателя).
Это не проблема, связанная со Script Lab, но использование Script Lab - это самый простой способ воспроизвести ее.
Версия Word: 1703, сборка 7967.2139, 2016 MSO (16.0.7927.1020) 32-разрядная.
Ожидаемое поведение: Word не вылетает и не вносит дополнительный контент.
Итак, давайте зададимся этим вопросом: как мне использовать полный документinsertOoxml(ooxml, 'replace')
не ломая мои документы?