在工程中碰到一个问题。 有个Div  使用innerHTML方式动态增加其内容。 在插入HTML代码时如果包含Img标签并带有onload事件时会触发事件,怎么阻止在这个Div里onload事件或其他事件。

解决方案 »

  1.   

    onload事件就是在加载的时候调用,你不想用那就在innerHTML 完毕之后,再给他赋上
    document.getElementById('imgId').onload = function a(){};
    document.getElementById('imgId').onclick = function b(){};
    然后想调用的时候再调?
      

  2.   

    如果在InnerHTML 之后改变onload的话这时候可能已经被执行了  因为已经能通过document.getElementById('imgId')获得到这个元素了,所以很矛盾而且许多事件都不像onload需要加载就能直接执行
      

  3.   

    innerHTML的东西,不写onload不行吗?
      

  4.   

    document.getElementById('imgId').onload = function(){return false;}; 
      

  5.   

    反正onload事件不触发,也就没用了,直接替换掉$("div1").innerHTML="<img onload='alert(0)' src='http://avatar.profile.csdn.net/C/4/0/2_zzqkillyou.jpg'/>".replace(/(<img[^>]*?)onload=.*?\s+([^>]*?>)/gi,'$1$2');
      

  6.   

    利用 JavaScript的defer属性不知是否能实现。
    即在img的onload调用的方法里设置:
    <script defer>
    function aa(){}
    </script>
    这样aa方法就会在页面加载完毕后再执行
      

  7.   

    楼上的办法好,我正在用这个思路写,但是在其他地方还需要调用  能不能用正则把onload字符替换为[onload] 这样就不会触发了