调试JS时可能会有帮助的事件:OnPropertyChanged

今天一位同事遇到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)  编辑 收藏

  回复  引用    
#1楼 2008-03-18 15:49 | 伟烧 [未注册用户]
谢谢!
  回复  引用  查看    
#2楼 2008-05-11 02:52 | 深蓝      
学习了。不错!

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-27 02:52 编辑过


相关链接: