Tiếng Việt

Công cụ dành cho nhà phát triển · HTML WYSIWYG trình chỉnh sửa

Rich Text trên Clipboard: Cách định dạng di chuyển giữa các ứng dụng

· Lý lịch

html bìa kẹp hồ sơ contenteditable

HTML và các biểu diễn bảng tạm bằng văn bản thuần túy lấy các đường dẫn riêng biệt vào trình chỉnh sửa
Hình minh họa vector ToolAcre gốc

Giải thích nhiều định dạng mà một bản sao văn bản đa dạng thức đặt vào bảng tạm, cách mỗi ứng dụng chọn một định dạng và tại sao đánh dấu được dán không bao giờ hoàn toàn giống với những gì đã được sao chép.

Cùng một bản sao, ba miếng dán khác nhau - mở ra với nội dung được dán vào trình duyệt, thiết bị đầu cuối và ứng dụng thư khách

Một đoạn được sao chép có thể xuất hiện dưới dạng nội dung được định dạng trong trình chỉnh sửa trình duyệt và các ký tự không được định dạng trong thiết bị đầu cuối vì đích đến yêu cầu các cách trình bày khác nhau. Trình xử lý dán của ToolAcre yêu cầu bảng nhớ tạm cho HTML và văn bản thuần túy, sau đó đi theo một nhánh cố định thay vì tin cậy vào thao tác chèn mặc định của trình duyệt.

Nếu có HTML, mảnh phong phú ban đầu sẽ không bao giờ trực tiếp xâm nhập vào bề mặt. Nó đi qua chất khử trùng đầu tiên. Nếu không có HTML thì văn bản thuần túy sẽ được chèn vào. Quy tắc cục bộ đó giải thích hành vi của trình soạn thảo này mà không yêu cầu cách mọi ứng dụng thư, hệ điều hành hoặc bộ ứng dụng văn phòng ưu tiên dữ liệu clipboard.

Trình xử lý dán này đọc văn bản/html và văn bản/plain; các hương vị bảng nhớ tạm rộng hơn nằm ngoài bằng chứng

Một clipboard có thể chứa nhiều cách trình bày của một lựa chọn. Việc triển khai này giải quyết rõ ràng `text/html` và `text/plain`. Nó không liệt kê RTF, hình ảnh, tham chiếu tệp hoặc định dạng dành riêng cho ứng dụng, vì vậy những định dạng đó không được ngụ ý là đầu vào được hỗ trợ.

Hai chuỗi có thể mã hóa thông tin khác nhau. Văn bản thuần túy mang các ký tự và dấu ngắt dòng, trong khi HTML có thể mang các đoạn văn, danh sách, điểm nhấn và liên kết cùng với các thuộc tính không mong muốn. ToolAcre ưu tiên cấu trúc khi có sẵn nhưng thu hẹp cấu trúc thông qua thành phần, thuộc tính và chính sách URL trước khi chèn.

Ai viết phiên bản HTML — giải thích rằng ứng dụng nguồn tạo ra nó, đó là lý do tại sao các miếng dán Word và Google Docs trông rất khác nhau

Ứng dụng nguồn tạo ra biểu diễn HTML, đó là lý do tại sao hai bản sao giống nhau về mặt hình ảnh có thể cung cấp các trình bao bọc và cách trình bày khác nhau. ToolAcre không xác định được nhà sản xuất. Nó áp dụng một quy tắc chung: các thuộc tính và trình bao bọc không được hỗ trợ sẽ bị xóa bất kể nguồn gốc.

Điều này ngăn các danh mục nội bộ Word hoặc Google Docs không có nguồn gốc trở thành tuyên bố về sản phẩm. Danh sách loại bỏ cho người viết biết chính xác những gì trình phân tích cú pháp này đã từ chối. Nếu độ trung thực của ứng dụng nguồn là quan trọng, hãy chụp một bản cố định thực sự từ môi trường được hỗ trợ và kiểm tra nó thay vì dựa vào một ví dụ bài viết chung chung.

Cách chọn đích đến - bao gồm thứ tự ưu tiên và các phím tắt dán dưới dạng văn bản thuần túy

Điểm đến chọn theo mã. Ở đây, HTML không trống sẽ thắng; mặt khác văn bản đơn giản được sử dụng. Không có công tắc thanh công cụ nào để "dán dưới dạng văn bản thuần túy" và các nguồn kho lưu trữ không xác định hành vi phím tắt. Các trình duyệt và hệ điều hành có thể cung cấp những cử chỉ như vậy một cách độc lập.

Việc xử lý thả phản ánh ý tưởng tương tự với DataTransfer: ngăn mặc định, đọc HTML và các giá trị đơn giản, loại bỏ HTML trước `insertHTML` hoặc gửi các ký tự đơn giản thông qua `insertText`. Không giống như dán, đường dẫn thả không hiển thị số lần xóa chi tiết giống nhau, mặc dù việc làm mới vẫn cập nhật tài liệu hiển thị.

Siêu dữ liệu mảnh nền tảng không được phân tích cú pháp rõ ràng bằng cách triển khai này

Một số nền tảng bao bọc HTML đoạn bảng nhớ tạm trong siêu dữ liệu hoặc điểm đánh dấu, nhưng ToolAcre không chứa trình phân tích cú pháp rõ ràng cho định dạng nền tảng được đặt tên. Trình mã thông báo của nó nhìn thấy chuỗi được trả về bởi `getData("text/html")` và xử lý đánh dấu được nhận dạng. Do đó, bài viết này bỏ qua cú pháp tiêu đề, độ lệch và đảm bảo dành riêng cho hệ điều hành.

Nếu trình bao bọc xuất hiện dưới dạng nhận xét thì nhận xét sẽ bị xóa. Nếu siêu dữ liệu đến bên ngoài HTML được công nhận, thì hành vi phải được kiểm tra. Khả năng định tính là không đủ để khẳng định sự ủng hộ hay từ chối đối với một giao thức nền tảng mà mã không bao giờ nêu tên.

Ví dụ đã hoạt động: so sánh tải trọng bảng nhớ tạm phong phú với tải trọng chỉ đơn giản

Sao chép đoạn văn không nhạy cảm chứa văn bản mạnh, danh sách ngắn và liên kết https. Một dán phong phú có thể giữ lại các cấu trúc được phép đó, loại bỏ kiểu dáng nguồn và thêm rel vào liên kết. Kiểm tra nguồn và cảnh báo loại bỏ. Sau đó dán một bản trình bày đơn giản thông qua một môi trường không cung cấp HTML.

Kết quả đơn giản chứa các ký tự được chèn vào vùng chọn; mọi cấu trúc khối đều do máy chủ chỉnh sửa trình duyệt quyết định thay vì được khôi phục từ HTML ban đầu. So sánh các từ và ranh giới dòng tách biệt với các phần tử. Bài tập thể hiện sự dịch giữa các biểu diễn chứ không phải sao chép từng byte.

Điều này không bao gồm những gì - API clipboard, hình ảnh, lối tắt nền tảng hoặc ma trận quyền

Bài viết này không đề cập đến navigator.clipboard lập trình, lời nhắc cấp quyền, hình ảnh clipboard, tệp, RTF, lối tắt di động hoặc ma trận tùy chọn đa nền tảng. Nó cũng không khẳng định rằng phần dán phong phú bị chặn sẽ khiến HTML thù địch tùy tiện trở nên an toàn khi xuất bản.

Trình khử trùng của ToolAcre có phạm vi hẹp và thừa nhận sự khác biệt của trình phân tích cú pháp. Hộp cát của nó chặn việc thực thi trong bản xem trước cục bộ nhưng HTML đã sao chép sẽ rời khỏi môi trường đó. Máy chủ nhận cần có chính sách đầu ra và khử trùng dựa trên trình phân tích cú pháp thích hợp, đồng thời người dùng nên tránh dán bí mật vào bất kỳ trang nào chưa được xem xét.

Bài học rút ra: phần dán là bản dịch chứ không phải bản sao — tóm tắt mô hình và cách trình soạn thảo HTML WYSIWYG của ToolAcre cho phép bạn kiểm tra nội dung bản dịch tạo ra

Một bản dán đa dạng thức là một bản dịch: nguồn ghi các phần trình bày, đích chọn một bản trình bày và ToolAcre lọc HTML đã chọn trước khi chèn. Hiểu được trình tự đó sẽ giải thích tại sao việc định dạng có thể biến mất mà không coi bảng nhớ tạm là bị hỏng.

Sử dụng các thiết bị cố định đại diện, kiểm tra nguồn kết quả và bảo tồn nội dung gốc khi việc dọn dẹp có thể loại bỏ ý nghĩa. Dán đơn giản rất hữu ích cho việc đặt lại bản trình bày, trong khi dán phong phú có thể giữ lại cấu trúc. Cả hai con đường đều không loại bỏ đích đến khỏi quá trình vệ sinh, kiểm tra khả năng tương thích hoặc đánh giá của người biên tập.