it-swarm-vi.com

JCE / TinyMCE - Tiếp tục cố gắng sửa lỗi HTML hợp lệ và không hợp lệ

Trong tất cả các trình soạn thảo Joomla chúng tôi đã sử dụng, JCE phù hợp nhất với mục đích và khách hàng của chúng tôi. Nhưng có một vài vấn đề với trình soạn thảo có thể gây ra sự cố khi chúng tôi mã hóa một cái gì đó, sau đó nó được chuyển sang wysiwyg và trình chỉnh sửa cố gắng 'sửa chữa' html hoàn toàn hợp lệ của chúng tôi.

Trước khi bạn đặt câu hỏi - có, chúng tôi đã đặt nó để cho phép tất cả các yếu tố mà JCE thích hạn chế, và không, nó KHÔNG được đặt để xác thực/dọn sạch html. Những hạn chế duy nhất chúng tôi có là dán nội dung vào trình chỉnh sửa.

Triển lãm A:

<a href="#"></a>

Điều này sẽ biến mất trên trình chỉnh sửa bật và trở lại. Thay thế bằng:

<p>&nbsp;</p>

Triển lãm B:

<a id="#nameofanchor"></a>

Thay đổi:

<p>&nbsp;</p>

Triển lãm C:

<div><a id="#nameofanchor"></a></div>

Thay đổi:

<div>&nbsp;</div>

Triển lãm D:

<a id="hello" class="link">Hello</a>

Thay đổi:

<p><a id="hello" class="link"></a>Hello</p>

Triển lãm E:

<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>

Thay đổi:

<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p>&nbsp;</p>

Bây giờ, chúng tôi muốn sử dụng id thay vì tên cho neo của chúng tôi, vì nó hợp lệ trong HTML5, trong khi về mặt kỹ thuật thì không. Ngoài ra, trong vũ trụ nào id là một sự gán không hợp lệ cho một liên kết?

Ngoài ra, bây giờ việc bọc div bằng các liên kết là hoàn toàn hợp pháp, tại sao JCE cũng loại bỏ chúng?

Đây chỉ là một thiết lập tôi đang thiếu? Có ai có cái nhìn sâu sắc về cách tôi có thể sử dụng trình soạn thảo để chúng tôi có thể viết mã khi chúng tôi cần trong trình chỉnh sửa, nhưng khách hàng của chúng tôi không thể phá hỏng nó chỉ bằng cách lưu trong wysiwyg?

Chỉnh sửa: Tôi đã thử nghiệm điều này trong chrome, firefox và safari. Đừng nghĩ nó có liên quan gì đến trình duyệt.

Chỉnh sửa: Tôi đã kiểm tra điều này với các cài đặt vùng chứa. Cả Container Đoạn & Đoạn trên Enter và Div Container & Div khi nhập đều gây ra điều này. Hai cái còn lại, Không có container & Đoạn khi nhập, Không có Container & ngắt dòng khi nhập, không gây ra nó. Vấn đề là - Tôi cần cài đặt đầu tiên! Càng nhiều càng tốt khi mang đến cho khách hàng lợi ích của sự nghi ngờ, đơn giản là họ không thể tin tưởng để làm theo hướng dẫn và thêm định dạng đoạn văn vào văn bản của họ.

Xác nhận: Điều này cũng xảy ra với TinyMCE.

Vì vậy - chúng tôi biết nguyên nhân gây ra điều này - cài đặt Parallel Container - bây giờ làm thế nào để chúng tôi có được xung quanh nó trong khi giữ cho cài đặt đó tồn tại?

9
Faye

Tôi sử dụng JCE Editor trên tất cả các trang web của chúng tôi, nhưng chúng tôi cũng đã bắt đầu cài đặt Sourcerer bởi NoNumbers. Điều này cung cấp một nút INSERT CODE dễ dàng cho trình soạn thảo JCE để bảo vệ nó khỏi bị sửa đổi.

http://www.nonumber.nl/extensions/sourcerer

7
YellowWebMonkey

Có một số cài đặt bí mật cho JCE. Tôi biết cài đặt sau dừng lại &nbsp; được thêm vào div trống, có thể được sử dụng để xóa phao, điều này gây ra vấn đề về chiều cao dòng khi được kết xuất:

In the Editor Global Configuration, add:
remove_div_padding:1 
to Custom Configuration Variables. 

Tôi hy vọng sẽ có nhiều hơn có thể kiểm soát bất kỳ khía cạnh nào của trình soạn thảo.

2
BodgeIT

Tôi nghĩ rằng đó phải là cài đặt kiểu chữ trong: Hồ sơ -> Thông số Trình chỉnh sửa -> Kiểu chữ. Hãy thử đặt Phần tử chứa & Nhập khóa thành NoContainer & LineBreak trên Enter để xem liệu nó có còn áp dụng bất kỳ thay đổi nào đối với html của bạn không.

Cũng cần nhớ rằng cài đặt Xác thực HTML có cài đặt cho từng cấu hình Trình chỉnh sửa và Joomla cũng cung cấp bộ lọc toàn cầu trong trang cấu hình toàn cầu do nhóm người dùng đặt. Hãy chắc chắn rằng không có cài đặt nào cho mỗi nhóm người dùng.

1
FFrewin

Hành vi này không phải là duy nhất đối với JCE. TinyMCE hành xử theo cùng một cách. Hành vi này có thể không giới hạn ở TinyMCE, nó có thể là hành vi DOM của trình duyệt.

JCE thực sự gặp rắc rối khi cố gắng giữ một số thẻ trống, phương pháp được sử dụng là đệm với một khoảng trắng.

https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js

0
Peter Wiseman