From: http://blog.iecn.net/zmm <BR> function getFuncName(_callee) {<BR> var _text = _callee.toString();<BR> var _scriptArr = document.scripts;<BR> for (var i=0; i<_scriptArr.length; i++) {<BR> var _start = _scriptArr[i].text.indexOf(_text);<BR> if (_start != -1) {<BR> if (/^function\s*\(.*\).*\r\n/.test(_text)) {<BR> var _tempArr = _scriptArr[i].text.substr(0, _start).split('\r\n'); <BR> return _tempArr[_tempArr.length - 1].replace(/(var)|(\s*)/g, '').replace(/=/g, '');<BR> } else {<BR> return _text.match(/^function\s*([^\(]+).*\r\n/)[1];<BR> }<BR> }<BR> }<BR> }<br><br> function a() {<BR> return getFuncName(arguments.callee);<BR> }<br><br> var b = function() {<BR> return getFuncName(arguments.callee);<BR> }<br><br> window.alert(a());<BR> window.alert(b());<BR>