2016-09-07 119 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

相關問題