【发布时间】:2010-09-10 22:23:50
【问题描述】:
我有一个运行 Flash 8 的 Flash 应用 (SWF),嵌入在 HTML 页面中。如何让 Flash 重新加载它嵌入的父 HTML 页面?我尝试使用 ExternalInterface 调用 JavaScript 函数来重新加载页面,但这似乎不起作用。
【问题讨论】:
标签: javascript html flash actionscript
我有一个运行 Flash 8 的 Flash 应用 (SWF),嵌入在 HTML 页面中。如何让 Flash 重新加载它嵌入的父 HTML 页面?我尝试使用 ExternalInterface 调用 JavaScript 函数来重新加载页面,但这似乎不起作用。
【问题讨论】:
标签: javascript html flash actionscript
检查动作脚本中的ExternalInterface。使用它,您可以在代码中调用任何 JavaScript 函数:
if (ExternalInterface.available)
{
var result = ExternalInterface.call("reload");
}
在嵌入 HTML 代码中输入一个 JavaScript 函数:
function reload()
{
document.location.reload(true);
return true;
}
这样做的好处是您还可以检查函数调用是否成功并采取相应措施。 getUrl 以及对 JavaScript 的调用现在不应该再使用了。这是一个老套路。
【讨论】:
试试这样的:
getURL("javascript:location.reload(true)");
【讨论】:
简单的一条线解决方案。
ExternalInterface.call("document.location.reload", true);
【讨论】:
又快又脏:这在大多数情况下都有效(根本不修改 HTML 页面):
import flash.external.ExternalInterface;
ExternalInterface.call("history.go", 0);
【讨论】:
在 Flash 10 中,您可以:
navigateToURL(new URLRequest("path_to_page"), "_self");
【讨论】: