Избранное »

22.09.2014 – 07:27 | 2 Комментарии | 7 022 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com начал работу канал «InDesign Мастерская вёрстки». Там уже размещены 13 видео с полным описанием как работать с программой DoTextOK. И другие интересные темы, касающиеся …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скриптинг

Курсор в тексте. Следующий абзац, предыдущий абзац. JavaScript

Добавлено на 27.12.2010 – 17:40Без комментариев | 457 views

Этот программный код  демонстрирует как как получить ссылку на предыдущий или на следующий абзац, когда курсор находится в тексте. Как показал опыт, такая задача иногда вводит в тупик начинающих и даже более опытных разработчиков, поэтому здесь приводим одно из возможных решений. Поделитесь, как эту задачу решаете вы.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
main();
/*Предполагается что перед запуском скрипта курсор стоит в тексте.
Скрипт покажет текущий абзац, следующий абзац и предыдущий абзац*/
function main()
{
if(app.selection[0].constructor.name == "InsertionPoint")
{
var mySelect = app.selection[0];
var myStory = mySelect.parentStory;
var myParagraphs = myStory.paragraphs;
var myPara = mySelect.insertionPoints[0].paragraphs[0];        // Ссылка на текущий абзац
alert(myPara.contents, "Текущий абзац" );
try {
var nextPara = myParagraphs.nextItem(myPara);
alert(nextPara.contents, "Следующий абзац")
}
catch (_)
{
alert("Переход к следующему абзацу невозможен, так как это последний абзац", "Неудача точка ру")
} // catch
try {
var prevPara = myParagraphs.previousItem(myPara);
alert(prevPara.contents, "Предыдущий абзац")
} // try
catch(_)
{
alert("Переход к предыдущему абзацу невозможен, так как это первый абзац", "Неудача точка ру")
} // catch
} // if
 
} // main()

Harbs из фирмы In-Tools предлагает для предыдущего абзаца следующее решение:

1
2
3
4
function getPreviousPara(text){
  return text.parent.characters.item(text.paragraphs[0].index-1).paragraphs[0];
}
alert(getPreviousPara(app.selection[0]).contents);

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.