思路确实不错,偶没有想过action可以是一个js函数

解决方案 »

  1.   

    偶突然想到问题还是可能出现的,如果用户也是通过编程修改action属性呢?这个时候进行的submit会不会出现问题,就是说你进行了doit(form)之后,如果用户通过编程修改了action,这个时候你纪录的action就没有任何意义了,我想这个时候我们是不是可以考虑acttachEvent("onpropertychange",myHandler)来记录action的改动情况呢?
      

  2.   

    to liuruhong(蓝色街灯)  
    如果修改过action,并不影响htc的attach,因为htc只是保存现场并恢复现场,
    当然如果页面某些地方需要脚本检查form的action,那就可能不行了,因为action在form attach到htc之后就已经发生变化,不过这种可能性非常之小,姑且算是一个问题吧,如果附加onpropertychange事件,对于页面性能的影响可能太大了.
    这种方式还有一个问题,那就是它不能附加到事件链的最前面,也就是说处理提交的脚本完成之后才执行action内的处理.
    不过能找到目前的方法已经很不错了.
      

  3.   

    偶说的form.attachEvent("onpropertychange",myHandle),不是对于document我提到的只是一个补充,在htc中的oncontentready事件中编写attachEvent("onpropertychange",myHandle),在事件链中,只要action通过程序改变了,myHandle就可以进行处理,在客户端更多可能的情况是这样的
    form1.action=newAction;
    form1.submit();
    我的意见就是在action改变的情况下myHandle就可以进行处理,然后才真正的执行submit,这个时候的action已经被我们修改成doit,真正的action也被我们记录下来
      

  4.   

    你说的有道理..我的一个同事的习惯就是这个样子..看来捕获form的action变化还是很有必要
      

  5.   

    你说的有道理..我的一个同事的习惯就是这个样子..看来捕获form的action变化还是很有必要
      

  6.   

    基于这些讨论,老兄可以写一个公用的htc,然后贴出代码,按照我的感觉,代码工作量不是很大,关键的是如何去设计而已
      

  7.   

    其实,这就是一个标准的重载了。
    可惜HTML太凌乱了。onPropertyChange for action是个有宜的补充。
    我们只有尽量模拟了。当然话说回来,虽然每个程序员都追求完美的通用
    但世上难有绝对通用的程序。所以:定义明确,实用,高效。是个好的标准。PS:
    --> 它不能附加到事件链的最前面,也就是说处理提交的脚本完成之后才执行action内的处理
    可以调整fireEvent在doYourHTCcheck之后。