Firefox 调用ExternalInterface.call时,如何防止浏览器变得无响应?
我有一部flash电影,我正在使用ExternalInterface.call函数从电影中调用javascript函数。问题在于,每当在Mozilla Firefox中执行javascript函数时,浏览器就会变得无响应。我在这里上传了这个文件:这是一张印度地图,当你点击最顶端的州(查谟和克什米尔州)时,会调用javascript函数。在一个新窗口中打开它…它可能会使您的浏览器也没有响应 你的方法有两个错误:Firefox 调用ExternalInterface.call时,如何防止浏览器变得无响应?,firefox,actionscript,Firefox,Actionscript,我有一部flash电影,我正在使用ExternalInterface.call函数从电影中调用javascript函数。问题在于,每当在Mozilla Firefox中执行javascript函数时,浏览器就会变得无响应。我在这里上传了这个文件:这是一张印度地图,当你点击最顶端的州(查谟和克什米尔州)时,会调用javascript函数。在一个新窗口中打开它…它可能会使您的浏览器也没有响应 你的方法有两个错误: 您可以直接从ExternalInterface.call调用javascript函数
alert(1);
console.log(1); // execution of this line is blocked by 'alert'
alert(2);
console.log(2); // execution of this line is blocked by 'alert'
因此,如果您评估“警报”,代码的执行将被阻止,您的浏览器可能没有响应。这将很容易避免。将javascript函数“evaluate”更改如下
function evaluate(code) {
setTimeout(function () {
eval(code);
}, 0);
}
settimeout只会推迟“警报”的执行,并尽快从actionscript返回回调