Гиперссылка имеет в основном два свойства, источник и пункт назначения. Пункт назначения n в вашем случае - это URL-адрес, который необходимо открыть в браузере. Однако источником является текстовый объект InDesign. Назначения можно использовать несколько раз, но только для одного объекта. Поэтому я бы рекомендовал обратиться к текстовым источникам с помощью фактически используемого объекта, то есть с помощью гиперссылки.
var main = function() {
\t var doc = app.properties.activeDocument,
\t hlks,hlk,
\t src,
\t txt;
\t
\t if (!doc) return;
\t
\t hlks = doc.hyperlinks;
\t
\t
\t if (!hlks.length) return;
\t
\t hlk = hlks[0];
\t src = hlk.source;
\t
\t if (!(src instanceof HyperlinkTextSource)) return;
\t txt = src.sourceText;
\t app.select (txt);
\t
\t txt.parentTextFrames.length && zoomObject (txt.parentTextFrames[0]);
\t
\t alert("here you are…");
}
function zoomObject(theObj) {
try {
var objBounds = theObj.geometricBounds;
} catch (e) {
throw "Object doesn't have bounds."
}
var ObjHeight = objBounds[2] - objBounds[0];
var ObjWidth = objBounds[3] - objBounds[1];
var myWindow = app.activeWindow;
var pageBounds = myWindow.activePage.bounds;
var PgeHeight = pageBounds[2] - pageBounds[0];
var PgeWidth = pageBounds[3] - pageBounds[1];
var hRatio = PgeHeight/ObjHeight;
var wRatio = PgeWidth/ObjWidth;
var zoomRatio = Math.min(hRatio, wRatio);
myWindow.zoom(ZoomOptions.fitPage);
myWindow.zoomPercentage = myWindow.zoomPercentage * zoomRatio;
}
main();
Благодаря профи, это работает для меня – Leo