2012-03-29 48 views
5

Folks,TinyMCE: Copy-Paste từ Google Docs

Công ty của tôi cần phải hỗ trợ các công việc sau: - Có nội dung phong phú nhận được tạo ra trong Google Docs (với đơn giản định dạng - đậm/nghiêng, cũng như các siêu liên kết) - Nội dung đó sau đó được dán vào một CMS nội bộ sử dụng TinyMCE.

Sự cố: mọi định dạng bị mất khi dán nội dung.

Đã thử plugin "dán từ Word" - nó không hoạt động.

Vui lòng thông báo. Cảm ơn bạn!

CẬP NHẬT: Tôi đã thu hẹp sự cố xuống Google Chrome. Firefox hoạt động tốt. Tôi cũng đã sử dụng callbacks paste_pre_processing() - dữ liệu bị hỏng trước khi vào đó.

+0

+1 câu hỏi hay, nhưng không dễ dàng. bạn có thể chỉ cho chúng tôi những gì được dán vào trình chỉnh sửa không, bạn đã định cấu hình tinymce bằng cách nào? – Thariama

+0

Tôi cũng gặp sự cố khi dán từ Google Tài liệu. Đôi khi nội dung sẽ chỉ bị "xóa" khi dán hoặc gửi cho DB. Tôi đã thử nghiệm một số chỉ bây giờ và nó có vẻ là làm việc tốt, nhưng nó cảm thấy không đáng tin cậy, đó là một vấn đề. Bất kỳ may mắn cho đến nay? – Sam

Trả lời

3

Tôi đã kết thúc việc bỏ plugin Dán vào TinyMCE. Thay vào đó, tôi đã sử dụng thuộc tính valid_styles không có giấy tờ của TinyMCE. Điều này giải quyết vấn đề tốt cho kịch bản của tôi. Dưới đây là đoạn mã cấu hình mà chúng tôi đã sử dụng:

valid_elements: "a[href|title|target],del,b,strong,del,i,blockquote,p,br,em,ul,li,ol,span[style]", 
valid_styles : { '*' : 'font-weight,font-style,text-decoration' }, 
1

Sự cố của bạn là vấn đề hơi phức tạp. Trước tiên, bạn cần đảm bảo rằng tinymce không xóa thẻ và thuộc tính thẻ mà nó nhận dạng là không hợp lệ (xem xét kỹ hơn các tùy chọn cấu hình tinymce valid_elementsvalid_children).

Thứ hai, bạn sẽ phải thực hiện xử lý riêng quy trình dán. Có ba cách để thực hiện việc này. Tùy chọn tốn nhiều thời gian nhất là viết một plugin dán tùy chỉnh riêng và thay thế một plugin đã cho. Các tùy chọn khác là cách để định cấu hình các plugin dán và xác định các chức năng riêng để tương tác và thay đổi nội dung đã dán. Các seetings paste_pre_processingpaste_post_processing là cách để đến đây.