CKEditor4 Проблема с буфером обмена

Я пытаюсь выбрать весь контент из экземпляра CKEditor и скопировать его в буфер обмена, когда пользователь нажимает кнопку в другой части экрана. Когда страница первоначально загружается, и я нажимаю кнопку "Копировать в буфер обмена", команда selectAll работает, но команда копирования не работает. Однако, если я нажму кнопку второй раз, все будет работать правильно.

Кто-нибудь знает, как решить эту проблему? Я новичок в CKEditor, но это похоже на проблему фокуса или времени. Я бы предпочел не кодировать фантомные нажатия кнопок, чтобы это работало. Любая помощь с благодарностью.

Вот мой код Как вы можете видеть, я также пытался обернуть команду копирования в обратный вызов afterCommandExec из команды selectAll. Это тоже не сработало.

<html>
<head>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript">
var g_editorObj = new Object;

window.onload = function () {
    g_editorObj = CKEDITOR.replace('editor1');       
}

function doCopyClipBoard() {
    try {
        g_editorObj.focus();
        g_editorObj.execCommand("selectAll");
        g_editorObj.execCommand("copy");
        //g_editorObj.on('afterCommandExec', handleCopy);
    } catch (ex) {
        alert(ex.Message);
    }
}

function handleCopy() {
    g_editorObj.execCommand("copy");
}    
</script>
</head>
<body>
<input type="button" onclick="doCopyClipBoard()" value="Copy to Clipboard" /><br />
<textarea id="editor1" name="editor1" rows="10" cols="80">Testing this thing</textarea>
</body>
</html>

1 ответ

Решение

Пожалуйста, проверьте, будет ли этот порядок вещей работать на вас:

editor.focus();
editor.once( 'selectionChange', function() {
    editor.execCommand( 'copy' );
} );
editor.execCommand( 'selectAll' );

или альтернативно:

editor.execCommand( 'selectAll' );
setTimeout( function() {
    editor.execCommand( 'copy' );
}, 0 );

Обратите внимание, что доступ к буферу обмена возможен только в IE. Это вопрос ограничений браузера, и нет способа обойти это.

Другие вопросы по тегам