Я так понимаю, это также работает правильно, когда документ заканчивается контролем содержимого в виде простого текста? :)

ю, что это не вопрос, но меня послал сюда Рик Киркхэм изВоти, видимо, спрашивающий о 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') не ломая мои документы?

Ответы на вопрос(1)

Ваш ответ на вопрос