- Сообщения
- 13 470
- Реакции
- 4 081
Отнюдь. Когда прочёл тот комментарий.
Не по теме:
Догадался через час, когда уже все расписали?
Отнюдь. Когда прочёл тот комментарий.
Не по теме:
Догадался через час, когда уже все расписали?
Значит у вас тип выделения не 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);
            }
        });
    }
}