<script>
function function1(i)
{
alert('函数原型:' + arguments.callee);
alert('实参数:' + arguments.length);
for(var s = 0; s < arguments.length; s++){
alert(arguments[s]);
}
}
</script><form>
<input id="ck1" type="checkbox" onclick="function1('fuc1')">
</form>
而我的需求是通过一段脚本来分析该控件的onclick事件所调用的方法名和参数。如:
function showFuncNameAndPara(){
el = document.getElementById("ck1");
alert(el.onclick)//结果是...function anonymous {function1(func1)} ;
//如何在这里获取el的conlcik事件所调用的方法名和参数?
//注:typeof(el.conclik)是"function"
}
<script language="javascript">
alert(document.getElementById( "ck1 ").onclick.toString().replace(/^.*?\{([^\}]*?)\}/,"$1"));</script>继续取
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="javascript">
function test()
{
for (var i=0;i<arguments.length; i++ )
{
alert(arguments[i]);
} alert(this.document.getElementById('b1').attributes["onclick"].nodeName);
alert(this.document.getElementById('b1').attributes["onclick"].nodeValue);
}
</SCRIPT>
</HEAD> <BODY><input name="b1" id="b1" type="button" value="测试一下" onclick="test('ok',1,2,3)">
</BODY>
</HTML>
但mingxuan3000给出的正则替换似乎没起作用?
除了字符串操作希望能有更好的办法
alert(this.document.getElementById( 'b1 ').attributes[ "onclick "].nodeValue);
方法是一个不错的办法,可以不用截取字符串操作,但有一个问题,方法中传递的参数值如何获取?
因为我希望的操作不是在这个onclick事件调用的时候去做,而是在其它的方法中去分析这个element
的onclick事件中调用的方法和参数。现在用这个办法可以很容易的取到它的方法名,参数呢?是否
也有一个不错的办法来获得,需保证即便传递的参数是对象类型也能轻易的得到!
谢谢大家 !
alert结果为 function1( "fuc1 ")
你在处理下就得到function1和fuc1
for (var i=0;i <arguments.length; i++ )
{
alert(arguments[i]);
} 这个循环可以取出每个参数,你可以赋值给其他的,或调用其他函数没关系的。你再试试!