- Сообщения
- 12 624
- Реакции
- 3 704
Отнюдь. Когда прочёл тот комментарий.
Не по теме:
Догадался через час, когда уже все расписали?
Отнюдь. Когда прочёл тот комментарий.
Не по теме:
Догадался через час, когда уже все расписали?
Значит у вас тип выделения не Text
Ага. app.selection - МассивЗначит у вас тип выделения не Text
#target Indesign
for (var j=0;j<app.selection.length;j++) {
hp = app.selection[j].findHyperlinks();
for (var i=0;i<hp.length;i++) hp[i].remove();
}
Не фактАга. app.selection - Массив
selection | Array of NothingEnum Object Object | r/w | The selected object(s). Can also accept: Object or NothingEnum enumerator. |
Индусы наиндусили. Как минимум на моей CS 5.5Не факт
Я предполагал, что для выделенного текстового фрагмента тип selection будет Text
selection Array of NothingEnum
Object
Objectr/w The selected object(s). Can also accept: Object or NothingEnum enumerator.
Там в зависимости от того, что именно ты выделяешь, тип может быть разным. В нормальных скриптах перво наперво проверяется тип выделенияИндусы наиндусили. Как минимум на моей CS 5.5
В данном случае выделен текст инструментом "Т". Доступ к нему идет через selection[0].Там в зависимости от того, что именно ты выделяешь, тип может быть разным. В нормальных скриптах перво наперво проверяется тип выделения
Да, есть такое. Лично я не уловил поведения до концаЯ как то отлаживал свой скрипт на разных выделениях - типы были и Array и Text и TextRange
app.selection.findHyperlinks();
падает - нет доступа к методам Text;А еслиapp.selection.findHyperlinks();
падает - нет доступа к методам Text;
app.selection[0].findHyperlinks()
- работает?selection[0]
: if(app.documents.length > 0){
if(app.selection.length > 0){
switch(app.selection[0].constructor.name){
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "Cell":
case "Column":
case "Row":
case "Table":
В Иллюстраторе.типы были и Array и Text и TextRange
А еслиapp.selection[0].findHyperlinks()
- работает?
Как ни странно, есть мнемоническое правило. Методы любого конкретного объекта возвращают массивы; коллекции содержатся только в свойствах объектов.
app.selection
- коллекция.findHyperlinks()
- массивДа. Полноценно.А еслиapp.selection[0].findHyperlinks()
- работает?
function processSelection(){
if (app.activeDocument.selection.length) {
app.activeDocument.selection.forEach(function (obj) {
switch(obj.constructor.name){
case "TextColumn":
case "Text":
case "Paragraph":
processPgfs(obj);
break;
case "TextStyleRange":
case "Word":
case "Line":
case "Character":
performTransformation(obj);
break;
case "Table":
processTable(obj);
break;
case "Cell":
processCell(obj);
}
});
}
}