none
【求助】IE 8 下使用 removeChild 导致IE重启的问题。 RRS feed

  • 问题

  • <tr>
    
    <td align="center" width="10%">1</td>
    
    <td align="center" width="10%">2</td>
    
    <td align="center" width="5%">
    
    <a href="#" onclick="delApply(this);" >取消</a>&nbsp;
    
    <a href="#" onclick="viewCourse(this);" >查看</a>&nbsp;
    
    <input type="hidden" name="caseId" value="-1"/>
    
    <input type="hidden" name="applyId" value="-1"/>
    
    </td>
    
    </tr><br/><br/>
    
    

    是对一个Table里的某行执行 removeChild, 上面是HTML 片段(去掉了业务数据), 下面是对应的JS:
    delApply = function(sender){
    
    var thisRow = sender.parentNode.parentNode;
    
    if( confirm('您确定取消?') ){
    
    	thisRow.parentNode.removeChild(thisRow);
    
    	//alert(thisRow.outerHTML);
    
    	//thisRow.outerHTML = '';
    
    	alert('取消成功。');
    
    };
    
    return;
    
    };
    
    
    运行reomveChild语句后,IE8会弹出崩溃窗口,提示发送错误报告。但是在IE 6, IE 7下可以正常运行,另外也无法使用outerHTML进行赋值清空。
    2009年8月21日 2:06

答案

  • 你可以这样
    <table>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消1</a></td>
      </tr>
    	<tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消2</a></td>
      </tr>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消3</a></td>
      </tr>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消4</a></td>
      </tr> 
    </table>
    <script>
    var	delApply = function(sender){
    var thisRow = sender.parentNode.parentNode;
    if( confirm('您确定取消?') ){
    thisRow.parentNode.deleteRow(thisRow.rowIndex);
    
    //alert(thisRow.outerHTML);
    
    //thisRow.outerHTML = '';
    
    alert('取消成功。');
    
    };
    
    return;
    
    };
    </script>
    


    【孟子E章】
    2009年8月21日 2:59
    版主

全部回复

  • 你可以这样
    <table>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消1</a></td>
      </tr>
    	<tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消2</a></td>
      </tr>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消3</a></td>
      </tr>
      <tr>
       	<td><a href="#" onclick="delApply(this);return false;" >取消4</a></td>
      </tr> 
    </table>
    <script>
    var	delApply = function(sender){
    var thisRow = sender.parentNode.parentNode;
    if( confirm('您确定取消?') ){
    thisRow.parentNode.deleteRow(thisRow.rowIndex);
    
    //alert(thisRow.outerHTML);
    
    //thisRow.outerHTML = '';
    
    alert('取消成功。');
    
    };
    
    return;
    
    };
    </script>
    


    【孟子E章】
    2009年8月21日 2:59
    版主
  • 不过,你原来的方法测试后也没有看到ie8崩溃啊
    【孟子E章】
    2009年8月21日 3:00
    版主