2016-08-25 3 views
1

Я создал табличку с надстройкой для слова, которая запускает поиск, и выберет текст между двумя результатами поиска. До пару дней назад следующий код был успешно запущен:Как должен range.expandTo использовать в слове javascript api

function onExpandTestClick() { 

     var textToFind = "Word", 
      range; 
     return Word.run(function(context) { 

      var searchResults = context.document.body.search(textToFind, { matchWildCards: false }); 
      context.load(searchResults, "text"); 
      return context.sync() 
       .then(function() { 
        range = searchResults.items[0].getRange("End"); 
        var rangeEnd = searchResults.items[1].getRange("Start"); 
        range.expandTo(rangeEnd); 
        context.load(range, 'text'); 
        return context.sync(); 
       }) 
       .then(function() { 
        range.select(); 
        return context.sync(); 
       }); 
     }) 
     .catch(function (error) { 
      console.log('Error: ' + JSON.stringify(error)); 
      } 
     }); 
    } 

Однако теперь следующее сообщение об ошибке броска:

Error: {"name":"OfficeExtension.Error","code":"InvalidArgument","message":"InvalidArgument","traceMessages":[],"debugInfo":{"errorLocation":""},"stack":"InvalidArgument: InvalidArgument\n at Anonymous function (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:183512)\n at pi (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:198624)\n at ht (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:198711)\n at g (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:198531)\n at l (https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:19:197117)"} 

Я использую PreviewCDN, как рекомендовано здесь https://github.com/OfficeDev/office-js-docs/tree/WordJs_1.3_Openspec и бегу офисная версия 16.0.7167.2040

Это правильный способ использования метода range.expandTo? Или что-то изменилось в api?

ответ

1

Вы используете метод правильно, хотя будет небольшое изменение в дизайне. Семантика ExpandTo (как вы можете видеть в последней документации) заключается в том, что она НЕ модифицирует вызывающий диапазон, а возвращает новый расширенный диапазон.

Для этого изменения требуется обновить библиотеку Office.js, похоже, что проблема с Beta CDN прямо сейчас, мы работаем над ее обновлением, чтобы она соответствовала существующей в настоящее время сборке.

Итак, в этот момент моя рекомендация - дождаться этого исправления.

спасибо!