[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex -- Lesezeichen

1 Lesezeichen für auslesen

Liste aller Eigenschaften eines Objekts
Hallo zusammen,

basierend auf dem Script von IndiSnip
http://indisnip.wordpress.com/2010/12/29/quicktip-find-properties-quickly/
habe ich versucht ein erweitertes Script zu erstellen.

Ziel ist es von app alle Objekte und Eigenschaften mit den jeweiligen Werten auszulesen.

Genaugenommen kann das Script das jetzt schon.
Die Erweiterung soll sein, dass bei einem gefundenen Objekt tiefer verschachtelt wird.

Beispiel:
Für _objekt = app; erhalte ich als erste Zeilen folgendes zurück:

Application.activeBook = cannot read
Application.activeDocument = [object Document]
Application.activeScript = cannot read
Application.activeScriptUndoMode = 1699967573
Application.activeWindow = [object LayoutWindow]
Application.alignDistributePreferences = [object AlignDistributePreference]

Nun möchte ich für den Fall, dass im Rückgabewert object vorkommt die Funktion rekursiv aufrufen und zusätzlich zu app auch die Werte für app.activeDocument erhalten.

Mein bisheriger Ansatz:

Code
// object 
var _objekt = app;
var _resultArray = [];

// hier wird Array mit den Werten von app gefüllt.
readObject(_objekt);

// nun durchlaufe ich das Array und prüfe, ob einer der Werte nach Split und Substring den Inhalt "object" hat.
for (x = 0; x < _resultArray.length; x++) {
try {
var tempResult = _resultArray[x].toString().split(" = ");
if (tempResult[1].substring(1,7) == "object") {
var subObjekt = tempResult[0].split(".");
// hier sollte eigentlich die Funktion erneut aufgerufen werden mit dem Parameter
readObject(_objekt+"."+subObjekt[1]);
}
} catch (e) {
alert(e);
}
}


// display properties
alert_scroll("Object properties", _resultArray.sort());

//Eigenschaften auslesen
function readObject (_objekt){
for (var i = 0; i < _objekt.reflect.properties.length; i++) {
var _property = _objekt.reflect.properties[i];
if (_property.toString() === "__proto__" || _property.toString() === "reflect" || _property.toString() === "properties") continue;
try { _result = _objekt[_property]; }
catch (e) { _result = "cannot read"; }
if (_result != null && _result.constructor.name === "Array") _resultArray.push(_objekt.constructor.name + "." + _property + " = [" + _result + "]");
else _resultArray.push(_objekt.constructor.name + "." + _property + " = " + _result);
}
}

// Scrollable alert function
function alert_scroll (title, input){
if (input instanceof Array)
input = input.join ("\r");
var w = new Window ("dialog", title);
var list = w.add ("edittext", undefined, input, {multiline: true, scrolling: true});
list.maximumSize.height = w.maximumSize.height-100;
list.minimumSize.width = 250;
w.add ("button", undefined, "Close", {name: "ok"});
w.show ();
}


Leider werden die Eigentschaften der subObjekte nicht aufgerufen.
Hat jemand eine Idee, wo ich mich da verrant habe?

Viele Grüße und eine besinnliche Adventszeit.
Jürgen
...
JuMayr
12. Dez 2012, 21:35
Hier Klicken

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.
pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
21.08.2019

Affinity Photo, Affinity Designer und Affinity Publisher

Schulungsraum von pre2media – Dammstrasse 8, 8610 Uster
Mittwoch, 21. Aug. 2019, 09.00 - 17.00 Uhr

Referat

Alle reden davon – wir zeigen ihnen kompakt was in den einzelnen ­Programmen wirklich steckt. Sind die Programme von Affinity – bereits heute – eine Alternative zu den Adobe-Programmen? Was versteht ­Affinity unter StudioLink und der vollständigen Integration der Affinity-Apps. Sie können jedes Affinity-Referat einzeln buchen. Oder alle drei Referate zusammen, bequem an einem Tag.

Mittwoch, 21. August 2019
9.00 bis 11.00 Affinity Photo Bildbearbeitung CHF 90.00
13.00 bis 15.00 Affinity Designer Grafikdesign CHF 90.00
15.00 bis 17.00 Affinity Publisher Layoutprogramm CHF 90.00
Alle drei Affinity Programme zusammen (6 Lektionen) CHF 220.00

Diese Referate werden auch noch am Fr. 13. September und am Di. 22. Oktober 2019 durchgeführt.

Ja

Organisator: pre2media gmbh, Dammstrasse 8, 8610 Uster, info@pre2media.ch, www.pre2media.ch

Kontaktinformation: Peter Jäger oder Roger Thurnherr, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/kurse/affinity-referat/

Affinity-Referat bei pre2media
Veranstaltungen
22.08.2019

Impressed GmbH, Hamburg
Donnerstag, 22. Aug. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=250

Enfocus Switch PDF Review Modul