2010-10-11 33 views
7

Tôi có một div có thể chỉnh sửa cần được tập trung tại tải trang (con trỏ đặt ở dòng đầu tiên).Nội dung tập trung có thể chỉnh sửa trong Chrome/Safari

document.getElementById("editor").focus() hoạt động tốt trong Firefox và IE, nhưng trong Chrome/Safari, nó chỉ chọn toàn bộ nội dung!

Có cách nào để thực hiện công việc này đúng cách không?

Cảm ơn trước,
Shesh

+0

Nó dường như được duyệt r giới hạn. Ngay cả với phím tab cũng bất cứ khi nào div [contenteditable] được tập trung nó làm nổi bật văn bản bên trong nó. –

+0

Cảm ơn bạn đã trả lời! Vâng, có vẻ như đó là trường hợp với TAB. :) – Sheshbabu

+0

+1 Ai đó đã bỏ phiếu cho câu hỏi hoàn hảo của bạn. –

Trả lời

2

Câu hỏi này có thể không còn phù hợp với người hỏi nhưng tôi sẽ trả lời nó cho độc giả trong tương lai. Nguyên tắc cơ bản là đặt vùng chọn thành một phạm vi thu gọn khi bắt đầu phần tử.

tôi giải quyết vấn đề này bằng cách sử dụng thư viện Rangy JS: http://code.google.com/p/rangy

var r = rangy.createRange(); 
r.setStart(document.getElementById('editor'), 0); 
r.collapse(true); 
rangy.getSelection().setSingleRange(r); 

Điều này có thể có nhiều hơn là cần thiết nhưng nó chắc chắn làm việc qua trình duyệt và Rangy cung cấp một loạt các tiện ích phụ cũng vì vậy nó có thể giá trị xem xét :)

0

tôi đã có thể thêm tập trung vào một DIV bằng cách gọi tập trung() phương pháp bị xích vào phương pháp attr()

$el.attr('contenteditable', "true").focus() 
Các vấn đề liên quan