JCE / TinyMCE-유효하고 잘못된 HTML을 수정하려고 계속 시도


9

우리가 사용한 모든 Joomla 편집자 중 JCE는 우리의 목적과 고객에게 가장 적합합니다. 그러나 무언가를 코딩 할 때 문제를 일으킬 수있는 편집기에는 몇 가지 문제가 있습니다. 그런 다음 wysiwyg로 전환되고 편집기는 완벽하게 유효한 HTML을 '수정'하려고합니다.

질문하기 전에-예, JCE가 좋아하는 모든 요소를 ​​제한하도록 설정했습니다. 아니요, HTML의 유효성을 검사 / 정리하도록 설정되어 있지 않습니다. 우리가 가진 유일한 제한은 컨텐츠를 에디터에 붙여 넣기하는 것입니다.

전시 A를:

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

에디터 전환 후 다시 사라집니다. 다음으로 대체 :

<p>&nbsp;</p>

전시회 B :

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

다음으로 변경 :

<p>&nbsp;</p>

전시회 C :

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

다음으로 변경 :

<div>&nbsp;</div>

전시회 D :

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

다음으로 변경 :

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

전시회 E :

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

다음으로 변경 :

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

이제 앵커의 이름 대신 id 대신 id를 사용하려고합니다. HTML5에서는 유효하지만 기술적으로는 이름이 아니기 때문입니다. 또한 어떤 유니버스에서 링크에 대한 배정이 잘못 되었습니까?

또한 링크로 div를 감싸는 것이 합법적이므로 JCE는 왜 그것들을 제거합니까?

이것이 내가 놓친 설정입니까? 편집기에서 필요한 코드를 작성할 수 있도록 편집기를 사용하는 방법에 대한 통찰력이있는 사람이 있습니까?

편집 : 나는 이것을 크롬, 파이어 폭스 및 사파리에서 테스트했습니다. 브라우저와 관련이 있다고 생각하지 마십시오.

편집 : 컨테이너 설정으로 테스트했습니다. Enter에 대한 단락 컨테이너 및 단락과 Enter에 대한 Div 컨테이너 및 Div가 모두 원인입니다. 다른 두 항목은 컨테이너 없음 및 단락 입력, 컨테이너 없음 및 줄 바꿈 입력으로 인해 발생하지 않습니다. 문제는-첫 번째 설정이 필요합니다! 고객에게 의심의 혜택을주는 것이 좋을만큼, 지침을 따르고 텍스트에 단락 서식을 추가한다고 믿을 수는 없습니다.

확인 됨 : TinyMCE에서도 발생합니다.

그래서-우리는 이것이 단락 컨테이너 설정의 원인을 알고 있습니다. 이제 설정을 유지하면서 어떻게 해결할 수 있습니까?


1
나만이 아니라 다행이다.
Craig

이전 토론과 이것이 JCE 요소 줄 바꿈 기능에서 나온다는 결론을 내린 후 이것이 실제로 어떤 문제인지 확실하지 않습니다. 에디터 상태를 토글하여 위와 같은 HTML 스 니펫을 추가 할 수 있다고 고객에게 신뢰하는 경우, 컨텐츠를 적절한 <p> 태그로 랩핑한다고 고객이 신뢰하지 않는 이유는 무엇입니까?
FFrewin

고객은 HTML을 추가하지 않습니다. 우리는 HTML을 작성하고 에디터 측을 사용합니다. 에디터가 전환 되 자마자 완전히 유효한 HTML을 망칩니다.
Faye

어쨌든 html로 가득 찬 페이지를 고객에게 편집 액세스 권한을 부여하면 고객이 html을 파괴 할 가능성이 큽니다. JCE의 템플릿 관리자 또는 다른 "매크로"태그를 사용하면 필요한 마크 업을 추가하는 데 어려움이 있을까요?
FFrewin

답변:


7

모든 사이트에서 JCE 편집기를 사용하지만 NoNumbers로 Sourcerer를 설치하기 시작했습니다. 이를 통해 JCE 편집기에 INSERT CODE 버튼을 쉽게 수정할 수 있습니다.

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


감사합니다. 이것은 완벽합니다. 환상적이기 때문에 이미 번호가 설치되어 있지 않습니다. 이것은 완벽 해요.
Faye

1
HTML을 추가하기 위해 Sourcerer를 사용할 필요가 없습니다.
BodgeIT 2016

Aaaand 그래도 JCE는 완벽하게 유효한 HTML을 제거합니다.
Faye

2

JCE에 대한 몇 가지 비밀 설정이 있습니다. 다음 설정이 &nbsp;빈 div에 추가되지 않고 부동 소수점을 지우는 데 사용되어 렌더링 될 때 줄 높이 문제가 발생한다는 것을 알고 있습니다 .

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

편집기의 모든 측면을 제어 할 수있는 것이 더 많을 것으로 기대합니다.


1

프로필-> 편집기 매개 변수-> 타이포그래피 에서 타이포그래피 설정이어야한다고 생각합니다 . 입력시 컨테이너 요소 및 Enter 키를 NoContainer & LineBreak로 설정하여 HTML에 변경 사항이 여전히 적용되는지 확인하십시오.

또한 HTML 유효성 검사 설정에는 각 편집기 프로필에 대한 설정이 있으며 Joomla는 사용자 그룹이 설정 한 전역 구성 페이지에 전역 필터도 제공합니다. 각 사용자 그룹에 대한 설정이 없는지 확인하십시오.


그래, 나는 모든 편집자 프로필에 있었고, HTML없이 올바르게 설정했습니다. 컨테이너를 바꾸면 문제가 해결 될 수도 있지만 문제와 마찬가지로 다른 문제가 발생할 수 있습니다. 클라이언트가 단락 태그로 줄 바꿈되지 않은 텍스트 내용을 추가 할 수 있으면 텍스트의 서식이 달라집니다. 우리는 그것도 원하지 않습니다. 앵커와 동일한 문제를 일으키는 지 테스트하지만 단락 태그 자체를 추가하는 한 코스에 필적합니다.
Faye

예, 컨테이너 설정입니다. 그러나 말했듯이 고객이 붙여 넣을 수 없어 자동 단락 태그가 내용을 감싸지 못하는 것이 더 큰 문제입니다.
Faye

코드 예제에 줄 바꿈이 포함되어 있기 때문에 이런 일이 일어나고 있다고 생각합니다. 이는 JCE가 단락을 만드는 일종의 "규칙"입니다. 이를 위해서는 그러한 기준이 있어야합니다. 고객이 편집기에 이러한 HTML 스 니펫을 붙여 넣습니까?
FFrewin

고객은 html을 사용하지 않지만 여전히 HTML을 사용하여 코드를 작성합니다. 우리는 그들이 직접 내용을 붙여 넣거나 타이핑 할 영역을 만듭니다. 또한 위와 같이 구성되지 않고 한 줄에 html을 입력하는 것을 의미하는 경우에도 시도했습니다. 나는 똑같은 결과를 얻습니다.
Faye

0

이 동작은 JCE에 고유하지 않습니다. TinyMCE는 같은 방식으로 동작합니다. 이 동작은 TinyMCE로 제한되지 않으며 브라우저 DOM 동작 일 수 있습니다.

JCE는 실제로 빈 태그를 유지하려고 애쓰는 데 어려움을 겪습니다.

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


거짓말하지 않을 것입니다. 이것이 무엇을 의미하는지 잘 모르겠습니다. 좀 더 분해 할 수 있습니까? 그 링크에서 무엇을보고 있습니까? 공백이있는 패드는 무엇을 의미합니까? 위의 코드 예제에 비 공백 공간을 추가해도 최종 결과는 바뀌지 않습니다. 철저히 테스트했습니다.
Faye

기본 편집기를 Joomla와 함께 사전 설치된 TinMCE로 전환하고 Exhibit A를 테스트했습니다. 또한 편집기 WYSIWYG와 소스보기간에 전환 할 때 태그를 제거했습니다. 즉,이 동작은 JCE 고유의 것으로 보이지 않습니다. 따라서 이것이 TinyMCE에 고유하지 않은지 궁금합니다. 브라우저를 사용하여 내부 편집을 수행 할 때 동일한 결과가 발생할 수 있습니다. JCE 코드 참조는 시작 태그와 종료 태그 사이에 비 공백 공간이 사용되는 129 행입니다. 그것은 JCE와 TinyMCE 모두에게 효과적입니다. 이상한.
피터 Wiseman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.