Hallo Gregor,
Antwort auf: ich hätte jetzt für Pause $.sleep(TimeInMs) vorgeschlagen. Ich war knapp dran, auch
$.sleep() vorzuschlagen, war mir dann aber spontan unsicher, ob der Core JavaScript Befehl möglicherweise ESKT anstößt, was ich mit dem veröffentlichten Funktionscode (aus fremder Quelle) zu umgehen versuchte.
$.sleep() funktioniert freilich auch.
Vermutlich sogar genau so, wie die obige Funktion (also kein Gewinn/Verlust hinsichtlich der Aufgabenstellung).
Antwort auf: Bspw. hatte ich hier einen Fall, das eine IDML-Datei nach afterOpen noch nicht gespeichert werden konnte. Die Fehlermeldung war, dass noch nicht alle Transaktionen abgeschlossen waren. Hier im Forum hatten wir ein ähnliches Phänomen mit der Eigenschat allGraphics, die ebenfalls nicht immer richtig referenziert. Hast Du eine Idee, was alles zwischen
a)
beforeOpen (
document ) und
afterOpen (
document ) und zwischen
b)
afterOpen (
document ) und
afterOpen (
layoutWindow ) passiert?
Habe letzthin ein Logger-Skript entwickelt, das die Dauer des Öffnenvorgangs von Dokumenten unter unterschiedlichen Bedingungen (Links lokal oder auf Server, unterschiedliche Stati) protokolliert. Dabei konnte ich zumindest feststellen, dass die Überprüfung der Schriften und der Links zwischen
beforeOpen (
document ) und
afterOpen (
document ) stattfindet.
Geht es in der Phase zwischen
afterOpen (
document ) und
afterOpen (
layoutWindow ) nur ums Rendern des Inhalts des Layoutfensters?
Übrigens wollte es mir in CS5 nicht gelingen, mit
beforeOpen (
document )
Fehlermeldungen bzgl. Schriften und Links zu unterdrücken, um die Bremse der damit verbundenen Dialoge, die einen Benutzereingriff erfordern, zu umgehen.
Den Zustand des UserInteractionLevels habe ich mir vor und nach dem Unterdrücken der Benutzerinteraktion beim beforeOpen-Event (document) angeschaut. Die Zustandsmeldungen entsprachen der Erwartung; die Wirkungen (das Ergebnis) allerdings nicht: die Fehlermeldungen ließen sich nicht unterdrücken.
Code #targetengine "session" app.addEventListener( "beforeOpen", zeitStoppenEin); app.addEventListener( "afterOpen", zeitStoppenAus); function zeitStoppenEin(myEvent) { alert( 'beforeOpen (' + myEvent.parent.constructor.name + ') – vor Unterdrückung: ' + app.scriptPreferences.userInteractionLevel ); app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; alert( 'beforeOpen (' + myEvent.parent.constructor.name + ') – nach Unterdrückung: ' + app.scriptPreferences.userInteractionLevel ); // do something } function zeitStoppenAus(myEvent) { alert( 'afterOpen (' + myEvent.parent.constructor.name + ') – vor Reaktivierung: ' + app.scriptPreferences.userInteractionLevel ); app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL; alert( 'afterOpen (' + myEvent.parent.constructor.name + ') – nach Reaktivierung: ' + app.scriptPreferences.userInteractionLevel ); // do something } Hab auch mal auf das Wiederherstellen der Interaktion bei
afterOpen (
document ) bzw.
afterOpen (
layoutWindow ) verzichtet.
Es will mir nicht gelingen, bei diesem Event-Skript die Fehlermeldungen bzgl. Schriften und Verknüpfungen zu unterdrücken.
Hast Du eine Idee, wie man diese Blockade durch die Fehlermeldungen mit der Notwendigkeit eines Benutzereingriffs umgehen könnte?