2017-09-22 7 views
1

컨텍스트 : C# .NET 웹 응용 프로그램.TinyMCE 템플릿 선택 : 현재 내용을 추가하는 대신 내용을 설정하십시오.

TinyMCE 텍스트 편집기. 템플릿을 선택할 때 텍스트가 텍스트 영역의 내용에 추가됩니다.

이 특정 텍스트 영역의 경우, 제품 소유자는 컨텐츠를 선택한 템플리트의 텍스트로 설정해야하며 이미 설정된 컨텐츠에 추가하지 않아야합니다. 따라서 템플릿을 선택하면 현재 내용을 먼저 지워야합니다.

아무에게 말해 주실 수 있습니까? 어떻게 달성 할 수 있습니까?

<script type="text/javascript"> 
var e = tinyMCE.get("MailText"); 
if (!e) { 
    tinymce.init({ 
    height: 200, 
    selector: "textarea#MailText", 
    theme: "modern", 
    plugins: ["template","code"], 
    templates: [ @Html.Raw(finalizeQueryVm.Templates)], 
     statusbar: false, 
     resize: false, 
     toolbar1: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist | code", 
}); 
} 

enter image description here

답변

2

템플릿 플러그인이 더 플래그가없는 경우 나에게 지시하는 설정 :이 여기에 해당하지만,하지 않는 것이

내 코드의 조각 및 스크린 샷입니다 교체하거나 삽입하십시오. 수정합니다 template 플러그인의 코드가 확실하게 삽입하기 위해 수정 될 수있는 template 플러그인

또는 설정 내용 각 템플릿이 어떤 기준에 따라 - 당신이 할 수있는 몇 가지 ...

일이 있습니다 . 더하기 여기 코드를 완벽하게 제어 할 수 있습니다. 단점은 template 플러그인이 예상대로 작동하도록 TinyMCE를 업데이트 할 때마다 이러한 변경 사항을 유지해야한다는 것입니다.

2 - TinyMCE를 편집기 이벤트 (예를 들어, BeforeSetContent)에 의존

일들이 당신을 알리는 이벤트를 발생 편집기에서 발생 - 이것은 당신이 경우에 따라 조치를 취할 수 있습니다. 이 이벤트 중 하나는 BeforeSetContent입니다. 템플리트에 마커를 삽입하여 이것이 삽입되는 "템플리트"임을 표시 한 다음 삽입 전에 편집기의 현재 내용 제거를 트리거 할 수 있습니다. 예를 들어 ...

tinymce.init({ 
    selector: "#myEditor", 
    ... 
    setup: function (editor) { 
    editor.on('BeforeSetContent', function(e) { 
     console.log('BeforeSetContent: ' + e.content); 
     if (e.content.startsWith("<!-- replace -->")) { 
     console.log('REMOVING EXISTING CONTENT'); 
     editor.setContent(""); 
     } 
    }); 
    } 
}) 

이 예는 템플릿의 첫 번째 부분은 HTML 주석 <!-- remove --> 있다고 가정합니다. 붙여 넣기에서 템플리트 삽입에 이르기까지 컨텐츠의 설정을 트리거하는 요소를 알 수있는 방법이 없습니다. 따라서 템플리트에 편집기의 현재 컨텐츠를 제거 할 것인지를 알 수있는 무언가가 있어야합니다.

+0

이것은 확실히 내가 바라는 종류의 답변입니다! 옵션 # 2를 선택하는 경향이 있지만 테스트에서 의도하지 않은 동작이 발생하지 않는 경우에만 해당합니다. –