我现在需要这样一个功能,比如在页面中有这样一个元素
<div id="panel"><div/>
我有一些操作inerHTML的操作
document.getElementById("panel").innerHTML = "sdfsd";
我想在这个div元素上监听这个事件,每当有内容发生变化时都要触发。在网上查了一些例子,onproperchange不触发,其他的自定义事件的方法都有局限性,比如说这个function Element(value, domEL){
this.domEl = domEL;            
this.domEl.getValue = function() { return value; };
this.domEl.setValue = function(newValue){ 
    var isChange = false || value!=newValue; 
    value = newValue; 
    if(isChange && this.onValueChange) this.onValueChange();  
};
this.domEl.buttonObj = this;    
this.domEl.onValueChange=this.valueChangeHandler;
}Element.prototype.valueChangeHandler=function(){
var buttonObj = this.buttonObj;
alert('value is changed to '+ buttonObj.domEl.getValue());
}var b = new Element(1, document.getElementById("panel")); 
一定要调用其中的setvalue方法才能触发。
高手指教!

解决方案 »

  1.   

    纯支持,我在尝试自动提交ext的htmleditor的时候遇到类似的问题,还不会解决
      

  2.   


    原来是同路人,我也在做htmleditor,呵呵
      

  3.   

    纯支持是我的话两种思路:1.写一个方法,专门执行document.getElementById("panel").innerHTML = "sdfsd";并检查改变2.setInterVal()...
      

  4.   


    兄弟,你说的很对啊,可是我现在是做html编辑器,这个情况比较多,比如
    1.我可以用代码的方式document.getElementById("panel").innerHTML = "sdfsd";来做
    2.document.execCommand()来用html命令来做。
    3.因为页面可编辑,用户可直接用键盘操作。
    哎!!!
      

  5.   

    朋友, 你看看是不是写错了,丢了TY   onpropertychange,
      

  6.   

    自己写个innerHTML行吗?
    var Element = function(obj){
    this.element = obj;
    return this;
    }
    Element.prototype.innerHTML = function(txt, callBack) {
    var _arg = [];
    var _len = arguments.length;
    for(var i = 0; i < _len; i++) {
    _arg[i] = arguments[i];
    }
    var _oldTxt = this.element.innerHTML;
    this.element.innerHTML = _arg.shift();
    _arg.shift();
    callBack.apply(window, [_oldTxt, txt].concat(_arg));
    }
    var $Element = function(id) {
    var _obj = (typeof(id) == 'string')? document.getElementById(id) : id;
    return new Element(_obj);
    } function alertIt(oldTxt, newTxt, str) {
    alert(str);
    }
    $Element('box').innerHTML('ddd', alertIt, '内容改变了!');
      

  7.   

    目前DOM的标准没有暴露出这样一个接口,个人感觉,楼上的重载innerHTML的方式,要比setInterval好,最好还是修改下设计或者算法,这个需求还是有点怪。