hilfdirselbst.ch
Facebook Twitter gamper-media

www.quarkuser.net | JavaScripts von Hans Häsler


Forenindex » Programme » Print/Bildbearbeitung » QuarkXPress » JavaScript mit QuarkXPress (QX.js) und QXML DOM

 



mguenther S
Beiträge: 1539

18. Jul 2018, 19:07

Beitrag #1 von 9
Bewertung: |||||

(151975 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


N'Abend,

Hier eine Zusammenfassung aller Ressourcen zu JavaScript (QX.js) mit QuarkXPress 2018 und zum QXML.
Da Entwickler meist Englisch lesen/schreiben/verstehen, alles auf Englisch… Cheers

QX.js Scripting Guide (Einführung):
http://files.quark.com/...cripting%20Guide.pdf

QX.js API reference (Schnittstellenbeschreibung, Referenz):
http://www.quark.com/...s%20API%20Reference/

QXML DOM API Reference (Objektmodell von QuarkXPress Dokumenten erklärt):
http://www.quark.com/...rence/qxml/qxml.html

QX.js GitHub Repository (Beispielskripte):
https://github.com/qxpjs

Getting Started with JavaScript in QuarkXPress (Schritt-für-Schritt Übungen):
https://github.com/qxpjs/GettingStarted

Gruß
Matthias


Vorschlag einer CreativePro Suite (ohne Miete): http://www.planetquark.com/2017/05/18/the-non-rental-suite/Kompendium für agiles Publishing, Storytelling, digitale Haptik etc.: http://goo.gl/XzCy8e
Top
 
X

Drienko S
Beiträge: 4819

1. Aug 2018, 10:48

Beitrag #2 von 9
Beitrag ID: #565219

Bewertung:

(151843 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Hallole Zusammen

Ich habe mal den Beitrag oben fixiert, ist doch alles sehr neu in QXP.


Gruss, Bernd D.
W10 (64-Bit), Corel Draw 2023/Designer 2023, MSO 2016,
https://www.facebook.com/sgmdonzdorf/

Helfen Sie mit bei HDS, werden Sie Mitglied.

als Antwort auf: [#564946] Top
 

mguenther S
Beiträge: 1539

1. Aug 2018, 13:01

Beitrag #3 von 9
Beitrag ID: #565224

Bewertung:

(151835 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Hier nochmal ein paar Beispiele (Ein- oder Zweizeiler):

QX.js: Alle Rahmen in einem Layout auslesen:
Code
var DOM = app.activeLayoutDOM(); 
var boxes = DOM.getElementsByTagName("qx-box");


QX.js: Alle Bildrahmen in einem Layout auslesen:
Code
app.activeLayoutDOM().querySelectorAll("qx-box[box-content-type='picture']"); 


QX.js: Benutzereingabe (Dialog):
Code
var name = prompt("your name:"); 
alert("Hello ", name);


QX.js: Textdatei lesen:
Code
fs.readFileSync(path) 


Gruß
Matthias


Vorschlag einer CreativePro Suite (ohne Miete): http://www.planetquark.com/2017/05/18/the-non-rental-suite/Kompendium für agiles Publishing, Storytelling, digitale Haptik etc.: http://goo.gl/XzCy8e

als Antwort auf: [#565219] Top
 

mguenther S
Beiträge: 1539

1. Aug 2018, 13:27

Beitrag #4 von 9
Beitrag ID: #565225

Bewertung:

(151831 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Weiterhin bietet das Juli Update für QuarkXPress 2018 (14.0.1) ein neues Beispielskript:

"Find and Replace Text from List"
Suchen & Ersetzen mit Suchpaaren, die in einer Liste (CSV, kommagetrennte Liste) definiert sind.

Gruß
Matthias


Vorschlag einer CreativePro Suite (ohne Miete): http://www.planetquark.com/2017/05/18/the-non-rental-suite/Kompendium für agiles Publishing, Storytelling, digitale Haptik etc.: http://goo.gl/XzCy8e

als Antwort auf: [#565224] Top
 

Uwe Laubender S
Beiträge: 5350

1. Aug 2018, 14:07

Beitrag #5 von 9
Beitrag ID: #565227

Bewertung:

(151827 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Antwort auf:
QX.js: Benutzereingabe (Dialog):
Code
var name = prompt("your name:"); 
alert("Hello ", name);



Hallo Matthias,
müsste da nicht noch eine Zeile rein für den Fall, dass der Anwender den Prompt abbricht, die Variable name also den Wert null annimmt?
Auch könnte die Methode prompt ein zweites Argument vertragen, sonst steht da womöglich im Textfeld undefined drin. Ein leerer String müsste es tun.

Nicht getestet:
Code
( function() 
{
var name = prompt("your name:" , "" );
if( name == null ){ return };

alert( "Hello ", name ); // Why not: alert( "Hello " + name );
}() )

*****
Mit herzlichem Gruß,
Uwe Laubender

als Antwort auf: [#565224] Top
 

mguenther S
Beiträge: 1539

1. Aug 2018, 15:34

Beitrag #6 von 9
Beitrag ID: #565234

Bewertung:

(151808 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Besser
Code
if(name != null) 
{
alert( "Hello ", name );

}


Zitat Why not: alert( "Hello " + name );

Zum Plus, oft eine Frage des Stils.

Guter Artikel dazu: https://stackoverflow.com/...in-different-pattern

Gruß
Matthias


Vorschlag einer CreativePro Suite (ohne Miete): http://www.planetquark.com/2017/05/18/the-non-rental-suite/Kompendium für agiles Publishing, Storytelling, digitale Haptik etc.: http://goo.gl/XzCy8e

als Antwort auf: [#565227] Top
 

Uwe Laubender S
Beiträge: 5350

1. Aug 2018, 17:14

Beitrag #7 von 9
Beitrag ID: #565244

Bewertung:

(151794 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Hallo Matthias,

ich bevorzuge das + beim Zusammenfügen von Strings.

Diese Schreibweise ist dann beispielsweise kompatibel mit ExtendScripts Core JavaScript, das der Methode alert() drei Argumente mitgegeben hat. Dort würde der mit Komma abgetrennte Teil als zweites Argument, als Titel des Alerts erscheinen.

Mit JavaScript für QuarkXPress ist das offenbar nicht der Fall. Das deckt sich dann mit window.alert() aus JavaScript für's Web. Bei einem Argument für Methode alert() ist das sichtbare Ergebnis mit + oder , identisch.

Zur Frage mit dem if:

Meiner Meinung nach ist meine Schreibweise klarer.
Aber das mag Ansichtssache oder Stilfrage sein.

Ich ummantele nur ungern auszuführenden Code mit { }, wenn er länger ist.

Das if( name == null ){ return } ist für mich das klare Statement, dass code unterhalb nicht ausgeführt wird, wenn der Ausdruck in den ( ) Klammern positiv beschieden wird. Funktioniert natürlich nur, weil ich den gesamten Code in eine selbstausführende annonyme Funktion gepackt habe:

Code
( function() 
{

/*
All code goes here.
*/

}() )

*****
Mit herzlichem Gruß,
Uwe Laubender

als Antwort auf: [#565234] Top
 

mguenther S
Beiträge: 1539

2. Aug 2018, 10:02

Beitrag #8 von 9
Beitrag ID: #565263

Bewertung:

(151761 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM



als Antwort auf: [#565244] Top
 

mguenther S
Beiträge: 1539

2. Aug 2018, 10:04

Beitrag #9 von 9
Beitrag ID: #565264

Bewertung:

(151762 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

JavaScript mit QuarkXPress (QX.js) und QXML DOM


Übrigens, das Juli Update für QuarkXPress 2018 fügt ein paar neue QX.js JavaScript Methoden hinzu:

- closeDialog
- openDialog
- openFileDialog
- openFolderDialog
- openProgressDialog
- saveFileDialog

Damit muss man nun den Pfad nicht mehr in ein Freifeld tippen/einsetzen, sondern kann einen Dialog aufrufen.

Gruß
Matthias


Vorschlag einer CreativePro Suite (ohne Miete): http://www.planetquark.com/2017/05/18/the-non-rental-suite/Kompendium für agiles Publishing, Storytelling, digitale Haptik etc.: http://goo.gl/XzCy8e

als Antwort auf: [#565263] Top
 


Forenindex » Programme » Print/Bildbearbeitung » QuarkXPress » JavaScript mit QuarkXPress (QX.js) und QXML DOM

X


^