질문/조언질답게시판
Extra Form
PHP PHP 7.3
CMS Rhymix

function setTextareaReplace() {
      var str = document.getElementById("editor_{$oDocument->document_srl}").value;
      str = "<p>" + str.replace(/(?:\r\n|\r|\n)/g, "</p>\r\n<p>") + "</p>";
      document.getElementById("editor_{$oDocument->document_srl}").value = str;
 };

 

로 댓글을 textarea 에디터로 작성시 <p>내용</p> 가 붙게되습니다

여기서 문제가 또 발생하는데요 p 태그가 html 태그로 붙는게아니라 댓글작성시 "<p>내용</p>" 대로 출력됩니다

<p>를 <p>태그로 변환시켜 안보이게하려면 어떻게 해야할까요?

  • profile

    작성시 붙게 하는게 아니라 작성 완료후 submit 넘어가는 과정에서 붙게 해야합니다.

  • profile ?

    작성완료 후 sbmit 하는 과정에서 setTextareaReplace가 실행됩니다 등록버튼에 onclick으로 넣었습니다
    replace으로 치환을 해주면 될거같은데 이과정에서 막힙니다 ㅠㅠ

     

    정확히말하면 html수정으로 보면 <p>&lt;p&gt;내용&lt;/p&gt;</p> 으로 나오는데 여기서 &lt;p&gt;를 지워야할거같습니다

  • ? profile
    작성된 댓글을 볼때 저렇게 나온다는건가요??
  • profile ?
    작성된 댓글을 볼때는 <p>내용</p> 댓글수정을 누르면 <p>&lt;p&gt;내용&lt;/p&gt;</p> 이렇게 나옵니다.

    생각해보니 수정할때 에디터는 ck에디터라서 그런거같기도 하군요
  • profile

    라이믹스에서 textarea 에디터를 사용하면(<textarea> 태그를 직접 입력한 것이 아니라, 에디터 설정에서 ckeditor 대신 textarea를 선택한 경우) <p> 태그 입력 등의 과정이 모두 자동으로 처리됩니다. 사용하신 것과 같은 함수는 전혀 필요하지 않습니다. 만약 안 된다면 오래된 스킨(모바일 에디터를 지원하지 않는 스킨)에서 에디터를 불러오거나 댓글 내용을 표시하는 방식이 문제입니다. 문제가 있다면 스킨을 고쳐야지, 불필요한 변환 과정을 추가하면 이중으로 인코딩됩니다.

  • profile ?
    임베디드 모듈에서 textarea 로 작성한 글에대해서는 동작하지 않다보니 p태그로 감싸는 작업이 필요해서 그런것인데 스킨에서 p태그로 감싸는걸 지원하는게 맞는건가요?
  • ? profile

    그야 모듈에 따라 다르고 스킨에 따라 다르지요. 처음 DB에 저장할 때 <p> 태그가 제대로 들어갔다면 스킨에서 표시해 줄 때는 별다른 처리가 필요하지 않습니다.

    <textarea> 태그와 textarea 에디터는 전혀 다르기 때문에 명확하게 구분해서 말씀해 주셔야 합니다.

    만약 사용하시는 스킨에서 에디터 모듈을 참조하지 않고 <textarea> 태그를 직접 박아놓았다면 글쓰기 폼에 use_editor=N, use_html=N 인풋을 추가해 줘야 할 수도 있습니다. 모바일에서 에디터를 사용할 수 있도록 하는 패치의 부작용으로, 일부 오래된 스킨이나 서드파티 자료에서는 에디터 사용 여부를 직접 표시해 주어야 하거든요. (XE타운에서 use_editor, use_html로 검색해 보시면 나옵니다만, 대부분 에디터를 사용하기 위해 Y로 설정하라는 내용일 겁니다. <textarea>를 사용하려면 거꾸로 N이어야 합니다.)

    만약 사용하시는 스킨에서 에디터 모듈을 참조한다면 (<textarea> 태그를 직접 출력하지 않고 {$editor}라고 되어 있으며, 에디터 모듈에서 textarea를 선택해 놓은 거라면) 위의 문단은 무시하세요.

  • profile ?

    답변 감사합니다 ㅠㅠ 스킨제작자분께 문의드려야겠군요