2017-03-17 4 views
1

추가 기능으로 TinyMCE를 사용자 정의하려고합니다.
메뉴에 두 개의 추가 항목을 추가하고 싶습니다. HTML을 붙여넣고 HTML을 복사하십시오.TinyMCE 클립 보드에서 소스 코드 복사하여 붙여 넣기

setup 내부 나는 두 개의 메뉴 항목을 추가 해요 :

editor.addMenuItem('htmlPaste', { 
    text: 'Paste HTML', 
    icon: 'paste', 
    context: 'file', 
    onclick: function() { 
    tinymce.activeEditor.setContent('<span>some</span> html'); 
    editor.notificationManager.open({ 
     text: 'HTML pasted.', 
     type: 'info', 
     timeout: 2000, 
     closeButton: false 
    }); 
    } 
}); 
editor.addMenuItem('htmlCopy', { 
    text: 'Copy HTML', 
    icon: 'copy', 
    context: 'file', 
    onclick: function() { 
    editor.notificationManager.open({ 
     text: 'HTML copied.', 
     type: 'info', 
     timeout: 2000, 
     closeButton: false 
    }); 
    } 
}); 

부분이 누락이 클립 보드에 액세스 할 수 있습니다. clipboard.js를 사용하려고 생각했지만 TinyMCE에이 빌드가 있지만 HTML 소스가 아닌 일반 내용을 복사하여 붙여 넣는 것을 깨달았습니다.

TinyMCE의 빌드 인 기능을 사용하여 클립 보드에 액세스 할 수 있습니까? 그래서 Paste HTML을 클릭하면 TinyMCE가 기본 소스 코드를 업데이트하고 Copy HTML을 클릭하면 TinyMCE가 클립 보드에 소스 코드를 복사합니다 (여기에서는 클립 보드 내용을 설정하기 전에 태그를 수정하고 싶습니다).

TinyMCE는 사용자가 클립 보드 액세스를 비활성화했을 때 폴백을 지원하기 때문에이 기능을 사용하고 싶습니다. 내가 setClipboardData 같은 몇 가지 유용한 기능을 찾았지만 아직도 내가 내 코드에서 호출하는 방법을 모른다 GitHub를 통해 상대 : http://codepen.io/anon/pen/EWbpyr

편집 :

여기 codepen 내 프로토 타입입니다.

답변

0

나는 당신이 가장 현대적인 브라우저에서 원하는 것을 할 수 없을 것이라고 생각합니다. 당신은이 잘라 내기/복사 내장 사용하려고하면

/붙여 넣기 버튼을 TinyMCE에 당신은 대부분의 브라우저에서이 참조 :

는 "브라우저가 클립 보드에 직접 액세스를 지원하지 않습니다 가 사용하십시오. 대신 Ctrl + X/C/V 키보드 단축키를 사용하십시오. "

편집자의 메시지에 따르면 이는 특정 브라우저에서 JavaScript를 통해 직접 수행 할 수있는 작업과 수행 할 수없는 작업의 제한 사항입니다.

좋아할 때마다 임의의 JavaScript가 클립 보드에 액세스 할 수 있다면 어떻게 할 수 있을지 상상해보십시오. "나쁜 사람"은 규칙에 어긋나지 만, 웹 페이지를 로딩 할 때 클립 보드에서 모든 것을 가져 와서 서버로 보낸 JavaScript가 있다면 어떨까요? 시간이 지남에 따라 브라우저 제조업체는 사용자가 CRTL + C 및 CRTL + V를 입력하면 클립 보드에 액세스하려는 브라우저에 효과적으로 알려줌으로써 클립 보드에 대한 직접 액세스가 "좋지 않음"이라는 것을 깨닫게되었습니다.

IE11은 실제로 레거시 API를 통해 액세스를 허용하지만 현재 Edge는 현재 클립 보드 API를 전혀 지원하지 않습니다 (적어도 필자는이 시점에서 작성하지 않았습니다).

+0

답장을 보내 주셔서 감사합니다. 클립 보드 콘텐츠를 가져올 수 없지만 클립 보드 콘텐츠를 설정할 수는 있습니다. 'Tools-> Source code'를 보여주고 사용자가 클립 보드에 가지고있는 소스 코드를 붙여 넣을 수 있도록합니다. 하지만 두 번째 부분이 있습니다. 버튼, 메뉴 항목 또는 키보드 단축키를 사용하여 html 내용을 복사 할 수 있기를 바랍니다. 나는 그 사용자가'Tools-> Source code'에 가서 거기에 복사 할 수 있음을 알고 있지만, 나는 그 패널을 사용할 수 없도록 일부 태그를 대체하려고한다. 난 그냥 최신 크롬 체크인, 당신은 붙여 넣기가 작동하지 않지만, 복사 옵션 않습니다 쓴 것처럼. – Misiu