This was an effort to discover why ExternalEvent calls to netScape Navigator would not work when calling JavaScript functions that spawn and write to new browser windows. Thanks to feedback from John Dowdell via the ShockR list, this technote from Macromedia:
http://www.macromedia.com/support/director/how/subjects/brwsrscriptips.html
explains:
Using ExternalEvent to change the contents of another frame on the page with frame.location or document.write will not work. To work around this, trigger a flag so that the update is called from another function after the one called by ExternalEvent has completed.
The way to do this is revealed from another technote:
http://www.macromedia.com/support/director/ts/documents/browserscript_timeout_techn.htm
to insert a timed delay so ExtneralEvent would internally expire its task. The trick is, if I am calling from shockwave a JavaScript function show_report() to write content to a new browser window, to restructure my JavaScript function:function show_report (selfcall) { // insert a time delay if called wiht no argument (from shockwave) // so that the browser repeast the call in 1/4 of a second if (selfcall == null) { setTimeout("show_report(1)", 250); } else { // This is the task for the browser to do once the delay has passed .... JavaScript code for opening window, writing, etc } }Compare the previous non-working version of the demo with the updated working version that uses this technique.