2010-10-01 14 views
6

Thay đổi màu văn bản của văn bản trong div có thể chỉnh sửa dễ dàng - chỉ cần gọi là document.execCommand("foreColor",false,"#FFF") để đổi màu văn bản thành trắng.Màu văn bản đặt lại có thể chỉnh sửa được sau khi foreColor đã được sử dụng mà không cần đặt lại kiểu khác

Tuy nhiên, tôi không thể tìm cách đặt lại màu này về giá trị mặc định (hoặc thành giá trị của phần tử gốc). document.execCommand("removeFormat",false,null) hoạt động hoàn hảo, ngoại trừ việc nó cũng sẽ loại bỏ bất kỳ kiểu in đậm hoặc nghiêng nào, đó không phải là những gì tôi muốn. Đơn giản chỉ cần thiết lập màu sắc cho các công trình màu đen, ngoài việc nếu bạn có một liên kết trong vùng chọn (nên giữ nguyên màu).

Điều này có khả thi không?

Trả lời

14

Tôi đang gặp thành công như sau:

document.execCommand("removeFormat", false, "foreColor"); 

vẻ (cho đến nay) mà removeFormat có thể được hiểu để loại bỏ chỉ định dạng được tạo ra bởi một lệnh cụ thể.

+0

Chà, tôi không biết về điều đó. Trình duyệt nào hoạt động? –

+0

Tôi đã làm việc như mong đợi trên Internet Explorer 7-9, Chrome và Firefox. Đáng buồn là máy của tôi gặp rắc rối với Safari và Opera vì vậy tôi không thể xác minh nó trên các nền tảng đó. –

+0

Nếu bạn ném nó vào một jsfiddle, tôi sẽ rất vui khi thử nghiệm nó trên Opera và Safari. – undefined

6

Dưới đây là một câu trả lời một phần, nhưng tôi vẫn đang tìm kiếm một giải pháp dành cho Chrome:

Trong IE9, bạn có thể sử dụng như sau:

document.execCommand("foreColor",false,"") 

Trong Firefox, bạn có thể sử dụng này:

document.execCommand("foreColor",false,"inherit") 

Nhưng trong Chrome, chuyển chuỗi rỗng/trống không thành công, trong khi chuyển kết quả 'kế thừa' trong việc đặt màu văn bản thành "rgba (0, 0, 0, 0)" - màu đen trong suốt. Rõ ràng đây là một lỗi. Tôi rất thích nhìn thấy một cách trình duyệt chéo đáng tin cậy hơn để làm điều này.

Các vấn đề liên quan