今天一位同事遇到JS上的郁闷事情, 现象描述: 在ASPX页面中, 给某个hidden控件赋值后, 在后台CS文件中取到的值与之不符. (也就是说,总会被某个操作悄悄的改变这个hidden的值,此ASPX页面运行在某个OA系统的JS框架下). 为了找出罪魁祸首, 我写了一段测试代码, 来检测当某个控件属性被修改时, 找出是哪个函数在做手脚.
<html>
<head>
<script type="text/jscript">
function controlPropertyChanged(){ var name = event.propertyName;
if(name != 'value'){ return;
}
var caller = controlPropertyChanged.caller;
var callerText = "";
while(caller != null){ callerText += "\n--------\n" + caller.toString();
caller = caller.caller;
}
var value = event.srcElement.value;
alert("value = " + value + callerText); }
</script>
</head>
<body>
<form action="">
<input id="ctlAHidden" type="hidden" value="" onpropertychange="controlPropertyChanged();" />
<input type="button" value="change value 1" onclick="document.all('ctlAHidden').value = 'new value 1';" /> <input type="button" value="change value 2" onclick="document.all('ctlAHidden').value = 'new value 2';" /> </form>
</body>
</html>
posted @ 2008-03-18 14:59
rex xiang 阅读(54)
评论(2) 编辑 收藏