views:

3137

answers:

5

I have a flash app (SWF) running Flash 8 embedded in an HTML page. How do I get flash to reload the parent HTML page it is embedded in? I've tried using ExternalInterface to call a JS function to reload the page but that doesn't seem to work...

+3  A: 

Try something like this:

getURL("javascript:location.reload(true)");

Alex Fort
+5  A: 

Check the ExternalInterface in Action Script. Using this you can call any JavaScript function in your code:

  if (ExternalInterface.available)
  {
    var result = ExternalInterface.call("reload");
  }

In the Embedding HTML code enter a JavaScript function:

  function reload()
  {
    document.location.reload(true);
    return true;
  }

This has the advantage that you can also check, if the function call succeeded and act accordingly. getUrl along with a call to JavaScript should not be used today anymore. It's an old hack.

Yaba
A: 

In Flash 10 you can do:

navigateToURL(new URLRequest("path_to_page"), "_self");
stach
A: 

Example 3 works, but not in IE.

Al Lemieux
A: 

Quick and dirty: This will work in most cases (without modifying the HTML page at all):

import flash.external.ExternalInterface;

ExternalInterface.call("history.go", 0);
Eliram