Tôi đang sử dụng iframe có thể chỉnh sửa nội dung để tạo cú pháp đánh dấu cú pháp trong javascript và một trong những điều quan trọng nhất là có thể thụt lề mã đúng cách.Phạm vi lựa chọn trong webkit (Safari/Chrome)
Các mã sau đây hoạt động giống như nó phải trong Firefox:
// Create one indent character
var range = window.getSelection().getRangeAt(0);
var newTextNode = document.createTextNode(Language.tabChar);
range.insertNode(newTextNode);
range.setStartAfter(newTextNode);
Nó tạo ra một tab char và di chuyển con trỏ đến phía bên phải của nhân vật. Trong Chrome và Safari, ký tự được chèn nhưng con trỏ sẽ không di chuyển sang bên phải của ký tự đó.
Tôi đã kiểm tra đối tượng phạm vi trong cả Chrome và Firefox và sau đó nhận thấy đối tượng phạm vi của Firefox phong phú hơn nhiều so với Chrome. Tôi đã không thể ro tìm thấy bất kỳ thông số kỹ thuật của đối tượng phạm vi trong webkit.
Tôi làm cách nào để mã này hoạt động cho cả webkit và Firefox?
Cảm ơn bạn!
Tuyệt vời! Nó hoạt động cả trong Firefox và Chrome :) Cảm ơn bạn! – Christoffer
Vì vậy, trong Firefox chỉ cần gọi range.setStartAfter() sẽ cập nhật lựa chọn, select.addRange() gọi là không cần thiết. Tuy nhiên, chrome cần gọi hàm addRange(). – maulik13
@ maulik13: Điều đó đúng. Tuy nhiên, Firefox là trình duyệt duy nhất để làm điều đó và spec không nói bất cứ điều gì về nó, vì vậy tôi thường khuyên bạn nên sử dụng lệnh 'addRange()' mà không nhắc đến sự tinh tế đó. –