当 Internet Explorer 8 上的 JavaScript 发生异常时,我需要获取完整的调用堆栈。函数调用可能发生在数量很大的帧之间。
将日志发送给开发人员所必需的调用堆栈。我不能使用调试器,因为最终用户不必处理这个问题。
当前的 JavaScript 解决方案提供了它可以生成调用堆栈(http://eriwen.com/javascript/js-stack-trace/)。它基于arguments.callee.caller。但如果函数是从当前帧之外调用的,则调用者返回零(未定义)。因此获得的调用堆栈是不完整的。
在这种情况下,我可以获得调用函数的框架的名称吗?
基于 Active Scripts Technology 的解决方案给出了一个 ScriptEngine 类型的对象:IHTMLDocument::get_Script (IDispatch ** p)
但是将对象“脚本”转换为接口 IActiveScript 失败。
*我可以从 IE8 中取出用于给定上下文 ScriptEngine 的链接,以提取必要的信息来构造调用堆栈吗?