복사

2017-01-17 1 views
1

Jsfiddle 예 여기에 클립 보드에 TinyMCE에 에디터의 선택 내용 :복사

http://jsfiddle.net/w0ap9Lun/1/

내 목표는 TinyMCE에 텍스트 영역의 모든 콘텐츠를 선택하고이 클립 보드 (동등한에 복사하는 것입니다 그것을 모두 강조 표시하고 Ctrl + C를 눌러).

그래서 같은 정상적인 입력으로이 작업을 수행 할 수 있습니다

$('.copyToclip').on('click', function() { 
    //select the input 
    $(this).siblings('input').select(); 
    //fire the copy command 
    document.execCommand("copy"); 
    $(this).text('copied'); 
}); 

다음 코드 편집기에서 모든 것을 선택하지만 난 '("복사")의 execCommand'를 호출 할 때 그것은 클립 보드에 복사되지 않습니다 여기 내 코드는 다음과 같습니다.

$('.copyTinyMCEToclip').on('click', function() { 
    //select the content of the active tinyMCE instance 
    tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.getBody()); 
    document.execCommand("copy"); 
    $(this).text('copied'); 
}); 

어떤 도움을 주시면 감사하겠습니다.

답변

0

당신이 TinyMCE에 방법을 사용할 수,이 시도 :

jQuery(function(){ 
    jQuery('.copyTinyMCEToclip').click(function(){ 
     var selectedText = tinyMCE.activeEditor.selection.getContent(); 
     jQuery('input').attr('value', selectedText); 
    }); 
}); 

: http://jsfiddle.net/w0ap9Lun/2/

참조 : 텍스트를 복사

기능 : http://archive.tinymce.com/wiki.php/API3:method.tinymce.dom.Selection.getContent

+0

안녕하세요 덕분에 내 질문에 대답하는 시간을내어. 불행히도 DOM 내에서 내용을 복사하려고하지 않고 사용자 클립 보드로 이동하여 다른 곳에 붙여 넣을 수 있습니다. 콘텐츠를 가져올 수는 있지만 클립 보드에 할당 할 수는 없습니다. –

+0

죄송합니다 :) 오해했습니다! – mariobros

0

이 시도 클립 보드 :

function copyToClipboard(text) { 
if (window.clipboardData && window.clipboardData.setData) { 
    // IE specific code path to prevent textarea being shown while dialog is visible. 
    return clipboardData.setData("Text", text); 

} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) { 
    var textarea = document.createElement("textarea"); 
    textarea.textContent = text; 
    textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in MS Edge. 
    document.body.appendChild(textarea); 
    textarea.select(); 
    try { 
     return document.execCommand("copy"); // Security exception may be thrown by some browsers. 
    } catch (ex) { 
     console.warn("Copy to clipboard failed.", ex); 
     return false; 
    } finally { 
     document.body.removeChild(textarea); 
    } 
}} 

지정 값은 제어 :

$('.copyTinyMCEToclip').on('click', function() { 
    var text = tinyMCE.activeEditor.getContent().replace(/<\/?[^>]+(>|$)/g, "") 
    copyToClipboard(text); 
    jQuery('input').attr('value', text);}); 
+0

고마워,이게 정말 좋고 내가 필요한 것에 한 발짝 다가 갔어. 나는 마크 업을 유지하기 위해 정규 표현식을 제거했다. 이 구현에서 가지고있는 문제점은 TinyMCE에서 영리한 형식을 잃어버린 것입니다. 내가하고 싶은 것은 스타일을 가진 테이블을 만들고 그것을 이메일에 붙여 넣는 것입니다. 귀하의 솔루션으로 원시 html을 얻었지만 Outlook은 코드가 아닌 요소를 렌더링합니다. –

+0

잘 이해하는지 모르겠다. "

테스트
"과 같은 Outlook 코드에 복사 한 다음 "렌더링 된 테이블"을 참조 하시겠습니까? –