2016-09-07 120 views
1

我有一个动态创建的表,利用“contenteditable”。contenteditable不能在微软边缘工作

最近,我有一个用户尝试通过Microsoft Edge使用网页,并没有任何字段的工作。然后我在我的电脑上试了一下,并且遇到了同样的问题。

我使用谷歌浏览器进行开发,并且工作得很好,并且在文档上说它支持Edge。

这里是产生我的表行的代码:

while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
    echo "<tr>"; 
     echo "<td style='width:10%;overflow:auto;border-left:1px solid #ddd;'> 
      <div style='cursor:pointer' name='del' class='fa fa-times-circle fa-lg button2' aria-hidden='true'> 
       <div style='display:none'> 
        ".$row['uniqueID']." 
       </div> 
      </div> 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='Readable:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Readable']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='Type:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Type']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='Category:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Category']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='Status:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Status']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='ShelfID:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['ShelfID']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='LocationID:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['LocationID']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='Height:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Height']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;' id='ListingStatus:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['ListingStatus']." 
     </td>"; 
     echo "<td style='width:10%;overflow:auto;border-right:1px solid #ddd;' id='Sales:".$row['uniqueID']."' contenteditable='true'> 
      ".$row['Sales']." 
     </td>"; 
    echo "</tr>"; 
} 

这是一些不兼容的情况?我能做些什么来解决这个问题?

回答

4

为了避免这种问题并最大限度地提高兼容性,最好只在限制数量的标签(如div)上使用contentEditable,如果您在td等其他元素中使用contentEditable,那么您可能会发现像这样的问题。

因此,解决办法是包括在每个这些细胞的一个div,使这些div的CONTENTEDITABLE元素

+0

是否有建议标签的列表?除了'div'之外的任何东西?内联的东西,比如'span'? – YakovL

+0

您可以查找CKEditor中使用的列表示例。我知道,默认情况下,他们不允许内联元素,但是您可以调整该设置以启用它(然后,如果某些浏览器barf取决于您) – AlfonsoML

+0

看起来这是适合我的解决方案。我不得不改变'var value = document.getElementById(“row”+ task_id +“_ cell”+ cell).innerHTML;'var var = document.getElementById(“row”+ task_id +“_ cell”+ cell).firstChild。 innerHTML;'在我的saveEdit函数中,确保传递div的父TD细胞的id。 – TARKUS

相关问题