我知道我可以使用
获取当前运行功能的名称arguments.callee.caller.name
但这在Internet Explorer (任何版本)中都不起作用。什么是正确的跨浏览器语法?是否存在变通方法?
答案 0 :(得分:2)
除了arguments.callee
实际上被逐步淘汰并且在ECMAScript 5严格模式中完全不存在这一事实外,主要问题是IE中的Function
个对象没有name
属性。它是在某些浏览器中实现的,特别是Firefox和最近的基于WebKit的浏览器,但它们是非标准的,实际上没有标准化的方法来获取函数名称。
这个离开你的唯一选择是尝试从函数的字符串表示中解析名称,这是不是一个好主意。这里有一个(长期)讨论:http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/b85dfb2f2006c9f0。
答案 1 :(得分:0)
你可以试试这个:
arguments.callee.caller。$ name
在IE中它支持$ name