Skip to main content
Participant
September 1, 2022
Question

Trigger app.close() from afterOpen event -

  • September 1, 2022
  • 2 replies
  • 253 views

Hii 

i have a script which checks for all the broken links. If i find a broken link i want to close the current document. 

I tried with app.close() from within the afterOpen event. and i get an error "cannot close document because it is the target of  an active event".
how do i stop the propagation of the event or a workaround to trigger the close of document from wthin the event.

This topic has been closed for replies.

2 replies

Community Expert
September 1, 2022

Hi @Ajith5F94 ,

technically spoken, workflow issues aside, you could open the document from app without a visible layout window so that the user has no direct access. Why that should be or not is a different discussion.

var myDoc = app.open( DocFile , false );

Then do your checks on broken links. Alert the user that the document has issues that should not be fixed right now and he/she should work on a different one. Now close the document without saving:

myDoc.close( SaveOptions.NO );

In case all is ok with the invisible document add a layout window to the invisble document with:

myDoc.windows.add();

Now the user is able to see the layout window of the opened document.

 

Hm. That all said…

This is a workflow where the actual user absolutely has no business with correcting broken links.

 

Regards,
Uwe Laubender
( Adobe Community Professional )

BarlaeDC
Community Expert
Community Expert
September 1, 2022

Hi,

 

I am not sure this would be a good idea, how could you ever fix the document if you close it when it has a broken link, everytime you open the document your afterOpen would fire, and then your document would close, so you could never open the document to fix the broken link.

 

Maybe I am misunderstanding your use case but this would certainly not be considered good user experience if the document opens and then closes and I wouldn't know why.

 

But I guess you could store something from the afterOpen event globally, and then have a script that runs every so often ( not sure what the best method for that would be) and if the global variable is set (with say a document name) it could close that document.