Adobe 0046100128056 Scripting Guide - Page 120
Adobe InDesign CS5 Scripting Tutorial, or quit and restart InDesign.
UPC - 718659087562
View all Adobe 0046100128056 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 120 highlights
CHAPTER 8: Events Working with Event Listeners 120 eventListeners do not persist beyond the current InDesign session. To make an eventListener available in every InDesign session, add the script to the startup scripts folder. (For more on installing scripts, see "Installing Scripts" in Adobe InDesign CS5 Scripting Tutorial.) When you add an eventListener script to a document, it is not saved with the document or exported to IDML. NOTE: If you are having trouble with a script that defines an eventListener, you can either run a script that removes the eventListener or quit and restart InDesign. eventListeners that use handler functions defined inside the script (rather than in an external file) must use #targetengine "session". If the script is run using #targetengine "main" (the default), the function is not available when the event occurs, and the script generates an error. An event can trigger multiple eventListeners as it propagates through the scripting object model. The following sample script demonstrates an event triggering eventListeners registered to different objects (for the full script, see MultipleEventListeners): #targetengine "session" main(); function main(){ var myApplicationEventListener = app.eventListeners.add("beforeImport", myEventInfo); var myDocumentEventListener = app.documents.item(0).eventListeners.add ("beforeImport", myEventInfo); } function myEventInfo(myEvent){ var myString = "Current Target: " + myEvent.currentTarget.name; alert(myString); } When you run the preceding script and place a file, InDesign displays alerts showing, in sequence, the name of the document, then the name of the application. To remove the event listeners added by the preceding script, run the RemoveMultipleEventListeners script. The following sample script creates an eventListener for each document event and displays information about the event in a simple dialog box. For the complete script, see EventListenersOn. main() function main(){ app.scriptPreferences.version = 5.0; var myEventNames = [ "beforeQuit", "afterQuit", "beforeNew", "afterNew", "beforeOpen", "afterOpen", "beforeClose", "afterClose", "beforeSave", "afterSave", "beforeSaveAs", "afterSaveAs", "beforeSaveACopy", "afterSaveACopy", "beforeRevert", "afterRevert", "beforePrint", "afterPrint", "beforeExport", "afterExport", "beforeImport", "afterImport" ] ; for (var myCounter = 0; myCounter < myEventNames.length; myCounter ++){ app.addEventListener(myEventNames[myCounter], myEventInfo); } } function myEventInfo(myEvent){ var myString = "Handling Event: " +myEvent.eventType; myString += "\r\rTarget: " + myEvent.target + " " +myEvent.target.name;