Javascript не может изменить текст в textarea, если экземпляр CKeditor был вызван - PullRequest
9 голосов
/ 11 января 2010

Ну, я сначала написал функцию Javascrip, которая будет изменять текст в textarea в соответствии с выбором, который вы сделали в выпадающем списке, очень простая вещь.

HTML

<form name="formconteudo">
<select name="selectpage" onChange="change();">
<option value="1">something</option>
<option value="2">another thing</option>
<option value="3">going crazy</option>
</select>
</form>

JS

var Code = new Array("", "Selected 1", "Selected 2", "Selected 3");
function change()
{
var ID =  formconteudo.selectpage.options[formconteudo.selectpage.selectedIndex].value;
document.formconteudo.ckeditor.value = Code[ID];
}

Это сработало довольно хорошо и изменило текст в текстовой области. Но затем я вызвал CKeditor Instance для этой текстовой области, чтобы я мог использовать CKEditor для этой текстовой области. Редактор хорошо загружается и отлично работает. Но теперь JavaScript не работает.

Любой намек на проблему?

Спасибо

Ответы [ 2 ]

26 голосов
/ 11 января 2010

Вы собираетесь использовать метод setData в редакторе.

Здесь - пример из их документов .

CKEDITOR.instances.editor1.setData( '<p>This is the editor data.</p>' );

Это означает, что ваш код будет выглядеть примерно так:

var Code = new Array("", "Selected 1", "Selected 2", "Selected 3");
function change()
{
var ID =  formconteudo.selectpage.options[formconteudo.selectpage.selectedIndex].value;
CKEDITOR.instances.editor1.setData( '<p>' + Code[ID] + '</p>' );
}

Примечание instances.editor1 может не относиться к вашей коробке, поэтому обязательно используйте правильное имя

2 голосов
/ 20 ноября 2011

Я потратил дни на эту проблему, и каждый продолжал давать мне странные решения. Проверил их API, и это даже приводит пример.

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#setData

    CKEDITOR.instances.YOUREDITORID.updateElement();
    alert( document.getElementById( 'YOUREDITORID' ).value );  // The current editor data.

Где 'YOUREDITORID' - идентификатор текстовой области для CKeditor, который будет использоваться.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...