ActionScript中通过ExternalInterface.call
调用JavaScript中的函数的时候,如果JS函数出错了,在浏览器中并不会报错。怎么才能让浏览器报告被AS调用的JS函数中抛出来的错误呢?
黄舟2017-04-10 14:26:36
ExternalInterface.call("eval","setTimeout(f,0)");
//如果有参数,使用JSON序列化即可
ExternalInterface.call(
"eval",
"setTimeout(function (){f("+JSON.stringify(args)+")},0)"
);
反正AS调用JS始终是异步的,再加个异步也没关系。
使用setTimeout之后,JS函数执行时若有error抛出的话,Console里就会显示出来了
注意Flash ExternalInterface.call 有重大的安全漏洞:http://lcamtuf.blogspot.com/2011/03/other-reason-to-beware-of.html