Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » 2-Wege Hyperlinks via Charstyle [INDD15.1.1 WIN10]

2-Wege Hyperlinks via Charstyle [INDD15.1.1 WIN10]

cwenet
Beiträge gesamt: 1139

18. Mär 2021, 09:26
Bewertung:

gelesen: 5817

Beitrag als Lesezeichen
Guten Tag,

ich versuche gerade Ziffern innerhalb eines Dokumentes zu verknüpfen (Hyperlink und Textanker).
Zuerst setze ich alle Textanker an die Ziffern die mit einem bestimmten Zeichenformat markiert sind. Die Ziffern kommen jeweils nur einmal vor.

Code
app.findTextPreferences = NothingEnum.nothing; 
app.findTextPreferences.appliedCharacterStyle = "fn_ref_";
myLinkResult = app.activeDocument.findText();

for (i = 0; i < myLinkResult.length; i += 1) {

myLink = myLinkResult[i];
myDoc = myLink.parentStory.parent;
myLinkAnchorDest = myDoc.hyperlinkTextDestinations.add(myLink);
myLinkAnchorDest.name = "fn_ref_"+myLink.contents;

}



app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = "fn_targ_";
myLinkResult = app.activeDocument.findText();

for (i = 0; i < myLinkResult.length; i += 1) {

myLink = myLinkResult[i];
myDoc = myLink.parentStory.parent;
myLinkAnchorDest = myDoc.hyperlinkTextDestinations.add(myLink);
myLinkAnchorDest.name = "fn_targ_"+myLink.contents;

}


Da klappt schonmal prima.
Nun möchte ich jeweils einen Hyperlink setzen. Der soll von einer Ziffer springen und wieder zurück.
Hier mein erster Versuch für die Verlinkung in die eine Richtung:

Code
var myDoc = app.activeDocument;  

app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = myDoc.characterStyles.itemByName("fn_targ_");
myLinkResult = app.activeDocument.findText();

for (i = 0; i < myLinkResult.length; i ++)
{

myLink = myLinkResult[i];


source = myDoc.hyperlinkTextSources.add(myLink);
if (myDoc.hyperlinkTextDestinations.item(myLink.contents).isValid) {
anchor = myDoc.hyperlinkTextDestinations.item(myLink.contents);
xref = myDoc.hyperlinks.add("fn_ref_"+source, anchor);
myRandomString = String(Math.random());
xref.name = myLink.contents + "_" + myRandomString.slice(2,);
}
}


Da passiert aber irgendwie nichts in der Hyperlinkpalette.
Bitte um Hilfe
Gruß
Chrisotph



Demofile:
https://www.dropbox.com/s/0r4hpbkveoas3ir/fn2way.indd?dl=0
https://www.dropbox.com/s/tpgglirrjnvmlzs/fn2way_result.indd?dl=0