Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » [Javascript] Finde Verknüpfung durch Suche

[Javascript] Finde Verknüpfung durch Suche

Stephan_M
Beiträge gesamt: 480

19. Nov 2019, 12:12
Bewertung:

gelesen: 4498

Beitrag als Lesezeichen
Hi, ich möchte dieses Skript beisteuern, daß mir neuerdings lästiges Scrollen und Suchen nach Verknüpfungen in der langen Liste des Verknüpfungspanels erspart.

Das Skript fragt nach einem Suchbegriff, und springt zur ersten Verknüpfung die im Dateinamen den Suchbegriff enthält. Meistens ist das das Bild oder die Anzeige die man gesucht hat. :)

Beispiel: Ich suche ich in der letzen Ausgabe des 80-seitigen Magazins die Anzeige der Firma "HDS". Ich rufe das Skript auf, gebe "hds" und bin -bumm- auf der Seite.
Es fragt dann, ob es zum nächsten Treffer springen soll.

Das ist so praktisch, ich habe es auf dem Tastenkürzel ALT-SHIFT-F.

--------------------------
Hi, I want to contribute this script, which saves me having to search and scroll through the often long list of links in the links-panel.

The script asks for a search term, then searches the linked images and jumps and selects the first one that matches the search term in its filename. Most of the time this is the image or ad you are looking for. :) It then asks to jump to the next hit. This is so handy, I have it on the keyboard shortcut ALT-SHIFT-F.

--------------------------

viele Grüße,
Stephan

Code
// searchLinks.jsx v.0.1  
// an InDesign CS6 JavaScript for searching linked file names
// Stephan Möbius, 26 Sept. 2019

searchString = new String();
myDisplayDialog(searchString);

function mySearchLinks(searchString) {
myLinks = app.activeDocument.links;
var foundLinks = new Array();
for(var i=0; i < myLinks.length; i++){
var myLinkName = myLinks[i].name;
myLinkName = myLinkName.toLowerCase();
if(myLinkName.indexOf(searchString.toLowerCase()) != -1) {
foundLinks.push(myLinks[i]);
}
}
if (foundLinks.length == 0) alert('No link containing "' + searchString.toLowerCase() + '"');
else {
for(var j=0; j < foundLinks.length; j++){
try {
foundLinks[j].show();
}
catch(ex) { var errorString = ex; }
if (foundLinks.length-1 > j) {
confirm(((errorString && errorString!='')? errorString + '\n\n' : '') + 'Continue?') ? errorString = '' : exit();
}
}
}
}


function myDisplayDialog(searchString){
var myDialog = app.dialogs.add({name:"searchLinks.jsx"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Search linked file names for ..."});
}
}
with(dialogRows.add()){
with(dialogColumns.add()){
var mySearchStringField = textEditboxes.add({editContents:'', minWidth:200});
}
}
}
var myResult = myDialog.show();
if(myResult == true && mySearchStringField.editContents!=''){
searchString = mySearchStringField.editContents;
myDialog.destroy();
mySearchLinks(searchString);
}
else{
myDialog.destroy();
}
}

[Javascript] Finde Verknüpfung durch Suche

Ollymac
Beiträge gesamt: 235

20. Nov 2019, 12:41
Bewertung:

gelesen: 4447

Beitrag als Lesezeichen
Hallo Stephan,

herzlichen Dank! Dein Skript läuft astrein unter CC19/OS X Mojave.

Beste Grüße
Olly
-- -- -- -- --
Mac mini M2 Pro, macOS Sonoma (14.4), Adobe CC, FrameMaker 10

[Javascript] Finde Verknüpfung durch Suche

Stephan_M
Beiträge gesamt: 480

20. Nov 2019, 14:42
Bewertung:

gelesen: 4411

Beitrag als Lesezeichen
Gern, freut mich sehr. Ich hab's auch in CC 2020 (win10) laufen.