2011-10-08 20 views
6

có ai biết cách buộc nội dung của một div có thể chỉnh sửa được bao quanh bởi div hay p không? Nếu nội dung của contenteditable là một div trống - chọn nó với một phạm vi hoạt động trên Firefox chẳng hạn nhưng trên chrome văn bản được chèn vào trước div. Tôi cần các văn bảnBuộc nội dung có thể chỉnh sửa được bên trong div hoặc p

HTML: 
<div id="edit" contenteditable="true"><div id="insert"></div></div> 

Tried this but the results are very inconsistent cross browser: 

var range = document.createRange(); 
range.selectNodeContents(document.getElementById('insert')); 

var selection = window.getSelection(); 
selection.removeAllRanges(); 
selection.addRange(range); 

Câu hỏi thứ hai ở đây là nếu điều này là bằng cách nào đó có thể cho một contentEditable trống, có thể này được cũng được sử dụng để tự chèn dòng mới để chắc chắn không bao giờ có được < br/> thẻ thay vì một mới div hoặc p?

Cảm ơn

Cập nhật

Có vẻ như các công việc sau tại một mức độ nào:

<div id="edit" contenteditable="true"><div id="insert"><br/></div></div> 

Với thêm < br/> Firefox, Chrome, Safari tất cả tạo ra một dòng trống đơn nơi tất cả đầu vào kết thúc bên trong div, nhưng Internet Explorer (phiên bản thử nghiệm 9) cho thấy hai dòng trống. Nếu không có giải pháp nào khác có sẵn - bất kỳ ý tưởng nào về cách sửa lỗi này mà không sử dụng tính năng phát hiện trình duyệt?

+0

Tôi đã tìm kiếm câu trả lời về điều này trong hơn một tháng để khắc phục một loạt lỗi vẫn còn trong Firefox. Thx u thx u thx u. –

Trả lời

0

Bạn có thể ghi đè br thẻ trong tệp css của mình.

br { 
    display:block; 
    clear: both; 
    height: 1em; 
    line-height: 1em; 
} 

Tôi không chắc chắn nếu em sẽ hoạt động. Nếu không, bạn cũng sẽ phải thử định dạng px.