2015-06-11 3 views
0

Я пытаюсь выбрать весь текст в потоке в InDesign CS4, чтобы я мог вызвать другой скрипт (не сделанный мной) по выбранному тексту, используя doScript. This question заставляет меня думать, что это возможно. Я пробовал frame.contents.select();, но это дает ошибку «frame.contents.select не является функцией».Выделить весь текст в потоке в InDesign?

Как я могу выбрать содержание потока в InDesign с помощью extendscript/javascript?

ответ

2

(Any_text_item).contents - это простой текст интерфейс только; он не имеет прямого доступа к встроенному в InDesign Text object, но вместо этого текст транслируется в и из обычной строки Javascript. Поэтому выбор текста Javascript (если возможно) ничего не сделал бы для текста в документе InDesign.

Чтобы получить весь текст с любым текстовым фреймом (или другим объектом), вы можете использовать его объект parentStory. Для того, чтобы выбрать (родной) текст, цель его свойство texts[0] и использовать select на том, что:

frame.parentStory.texts[0].select(); 

Если вы можете найти в какой момент «текущий выбор» установлен, вы можете добавить следующие строки непосредственно перед ней:

if (app.selection.length == 1 && app.selection[0].hasOwnProperty("previousTextFrame")) 
{ 
    // alert ('we must be a text frame!'); 
    app.selection[0].parentStory.texts[0].select(); 
} 

Например, в сценарии markdownId.jsx, который был бы рядом вокруг линии 29, только после того, как

tagset = findTagSet(); 
if (app.selection.length > 0) 
{ // <- add the new lines immediately below this one, above the next 
    if (app.selection.length == 1 && app.selection[0].hasOwnProperty('baseline') && app.selection[0].length > 1) 

¹ Лучше всего проверить свойства которого вы уверены, что ни один «нежелательные» объекты не имеют. Раньше я использовал parentStory, но понял, что выбор обычного текста также имеет это свойство, и поэтому он не может отличаться от обычного выбора и текстового фрейма. Для previousTextFrame вы можете быть уверены, что только текстовые фреймы и текстовые пути являются правильным видом объекта.

+0

Ха-ха! Это markdownID, я пытаюсь выполнить скрипт. Это потрясающе. Попробуйте ваше решение сейчас ... –

+1

Незначительное обновление: плохой совет (тест для 'parentStory') заменен лучшим (тест для' previousTextFrame') ... (Рады приветствовать! Рад помочь.) – usr2564301

+0

советы по обработке кодировки символов? Ваш скрипт прекрасно справляется, когда я позволяю ему выполнять загрузку; но когда я загружаю свои собственные md, такие вещи, как кавычки и апострофы, начинают все странно с gobbly-gook, как ', Äù'. –

Смежные вопросы