我在page1.php中有以下代码:

<a href="page2.php" onClick="javascript:callFlash();">Go to page</a>

这会调用第1页上的Flash影片中的函数。会打开page2.php。

我的问题是:

我可以确定在调用page2.php之前总是会调用flash函数并完成执行吗? (flash函数实际上将一些数据保存到本地共享对象)。

或者我应该在flash代码中添加一些代码到 getURL(&quot; page2.php&quot;);

任何想法 欢呼声

有帮助吗?

解决方案

如果你在flash功能完成后肯定需要打开页面,那么保证这一点的唯一方法是从你已经想到的flash功能重定向。

其他提示

首先,请不要包含“javascript:” onclick 属性中的伪协议。

尝试使用 onclick =&quot; return callFlash()&quot; &#8212;这样,浏览器必须等待JS功能完成才能跟随链接。我不知道你用来调用AS函数的方法,但如果它是同步的(即可以在不使用回调或其他东西的情况下将数据返回给JS),那么AS函数将会在JS函数之前完成,并在页面重新加载之前完成。所以这应该是安全的。

问题的答案是否定的。

有一个简单的解决方法。只需停止click事件的传播,让flash执行重定向:

<a href="page2.php" onClick="stop_and_call(event);"/>

javascript:

function stop_and_call(e)
{
    if (!!(window.attachEvent && !window.opera)){
        // this is IE
        e.returnValue = false;
        e.cancelBubble = true;
    } else {
        e.preventDefault();
        e.stopPropagation();
    }
    e.stopped = true;
    callFlash();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top