Set global variables using #targetengine


when write script able use global variable don't have set variables in each script. (eg. use var doc = app.activedocument; , few others, in every script write) tried set variables startup script using #targetengine "mine" runs before document opens (even "afteropen" eventlistener) invoking error: "no documents open." tried create menu button set variables :

 

#targetengine "mine"  var mymenuitemname = "set variables";  // create script menu action (mymenuitemaction) var mymenuitemaction = app.scriptmenuactions.add(mymenuitemname);  // add event listener mymenuitemaction.addeventlistener(     /*event type*/   'oninvoke',     /*event handler*/ setvariablesfunction     );  // create new menu item in submenu var filemenu = app.menus.item("$id/main").submenus.item("$id/&help"); filemenu.menuitems.add(mymenuitemaction);  function setvariablesfunction(){ var doc = app.activedocument; var test = "test "; alert(test + "success") } 

but second script cause error: "test undefined"

#targetengine "mine"  alert(test + "failed") 

i able set variables if run script manually

#targetengine "mine" var test = "success"; 

and then

#targetengine "mine" alert(test); 

and know can set shortcut (which may have anyway) don't want have remember run script each time open indesign.

 

hopefully haven't complicated question much. can provide guidance need make work preferably startup other suggestions accepted.

if need open document run start-up script, open document, thing, , close it.

 

but won't because app.activedocument refers document , reference becomes invalid moment close it.



More discussions in InDesign Scripting


adobe

Comments

Popular posts from this blog

Illustrator CS6 Ocurrío un error E/S en el archivo.

Why is os_ViewContainer running?

Animate - problem with duplicating scripts after loop