2016-09-07 4 views
1

"contenteditable"을 사용하는 동적으로 생성 된 테이블이 있습니다.contenteditable이 Microsoft Edge에서 작동하지 않습니다.

최근에 사용자가 Microsoft Edge를 통해 웹 페이지를 사용하려고했지만 필드가 작동하지 않았습니다. 그런 다음 내 컴퓨터에서도 테스트 해 보았습니다. 동일한 문제가있었습니다.

Google Chrome을 사용하여 개발하고 완벽하게 작동하며 문서에서 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의에게의 contentEditable 요소

+0

추천 태그 목록이되어 있는지 확인하는 것입니다? 'div' 외에 뭐니? 'span'처럼 인라인 한 것? – YakovL

+0

CKEditor에서 사용되는 목록의 예를 찾을 수 있습니다. 나는 기본적으로 그것들이 인라인 요소를 허용하지 않는다는 것을 알고 있지만 그것을 가능하게하기 위해 설정을 조정할 수있다. (어떤 브라우저 barfs라면 당신에게 달려있다.) – AlfonsoML

+0

이것이 저에게 맞는 솔루션 인 것 같습니다. var value = document.getElementById ("row"+ task_id + "_ cell"+ cell) .innerHTML;'var value = document.getElementById ("row"+ task_id + "_ cell"+ cell) .firstChild를 변경해야했습니다. innerHTML;'내 saveEdit 함수에서 div의 부모 TD 셀 ID를 전달해야합니다. – TARKUS