1<html> 2 3<head> 4<title> 5 6</title> 7</head> 8 9<script> 10function f1(){ 11 alert(stacktrace()); 12} 13 14function f2(){ 15 f1(); 16} 17 18f2(); 19 20function funcname(f) { 21 var s = f.toString().match(/function (\w*)/)[1]; 22 if ((s == null) || (s.length == 0)) return "anonymous"; 23 return s; 24} 25 26function stacktrace(){ 27 var s = ""; 28 if (document.all){ 29 for(var a = arguments.caller; a != null; a = a.caller) { 30 s += funcname(a.callee) + "\n"; 31 if (a.caller == a) break; 32 } 33 } 34 else{ 35 for(var a = stacktrace.caller; a != null; a = a.caller) { 36 s += funcname(a.arguments.callee) + "\n"; 37 if (a.caller == a) break; 38 } 39 } 40 return s; 41} 42 43 44 45</script> 46 47<body> 48 49</body> 50 51</html>