9

我想創建客戶端可編輯表。這是我的代碼。它適用於Chrome,Firefox但不適用於IE。還有什麼更多的與腳本的IE瀏覽器?contenteditable不能在IE 10中工作

<script type="text/javascript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 

$("td").click(function(){ 
if($(this).attr("contentEditable") == true){ 
    $(this).attr("contentEditable","false"); 
} else { 
    $(this).attr("contentEditable","true"); 
} 
}) 
}); 
</script> 

<p> 
<table id='transitTable' border="1" cellspacing="2" cellpadding="2" class='display' width="400"> 
<tr id='1'> 
<td >H1</td> 
<td >H2</td> 
<td >H3</td> 
<td >H4</td></tr> 
<tr id='2'> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td> 
<td >R1</td></tr> 
<tr id='3'> 
<td >R2</td> 
<td >R2</td> 
<td >R2</td> 
<td>R2</td></tr></table></p> 

回答

12

IE中有很多元素,它們不能直接設置contenteditable。但是,您可以將整個table包裝到可編輯的內容div中。

<div contenteditable="true"> 
    <table> 
     ... 
    </table> 
</div> 

這將make all the cells in the table editable。儘管在某些瀏覽器(FF)中,由於表格的顯示編輯手柄,視圖會有些雜亂。

另一種可能性是向每個td添加例如可編輯的內容spandiv

+0

感謝Teemu。有效。 :) –

+0

@Teemu:hie。如果我想讓輸入框不可編輯? contenteditable =「false」不起作用在IE9中。與鉻合作良好。 – Dharmraj

+0

@Dharmraj你可以使用'readonly =「true」'。 – Teemu

4

IE不響應contenteditable裏面td標記。

你可以試試:

<td id="my-content" class="editable"> 
    <div contentEditable="true" style="width: 100%; height: 100%;"> 
     ... 
    </div> 
</td>