ActionScript调用JavaScript如何调试?

ActionScript中通过ExternalInterface.call调用JavaScript中的函数的时候,如果JS函数出错了,在浏览器中并不会报错。怎么才能让浏览器报告被AS调用的JS函数中抛出来的错误呢?

阅读 5.2k
2 个回答
ExternalInterface.call("eval","setTimeout(f,0)");
//如果有参数,使用JSON序列化即可
ExternalInterface.call(
  "eval",
  "setTimeout(function (){f("+JSON.stringify(args)+")},0)"
);

使用setTimeout之后,JS函数执行时若有error抛出的话,Console里就会显示出来了

注意Flash ExternalInterface.call 有重大的安全漏洞:http://lcamtuf.blogspot.com/2...

将所有参数都用类似base64的方法编码后再传给JS才安全,光 escape slash 是没用的。

你可以在Firefox上安装一个叫FashFirebug的插件。不过,使用它之前要先安装Firebug。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题