Задать вопрос
LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как изменить параметр CKEDITOR?

Всем привет!

На форме есть текст бокс в который пользователь вводит урл и текстовая область, которая заполняется посредством редактора CKEDITOR.

Вот как инициируется редактор:
CKEDITOR.replace('ae-textarea-text', {
        filebrowserImageUploadUrl: '/Sites/UploadImgToSite?Site=' + $("#SiteName").val(),
        height: 850,
        width: 800       
    });


/Sites/UploadImgToSite?Site - это путь на контроллере, который должен сохранить картинку с параметром "Site"
картинка сохраняется, но параметр "Site" приходит всегда пустой. А вот если я заранее пропишу значение в текст бокс урл, то все ок.

Выходит что при загрузке страницы CKEDITOR инициируется пустым значением #SiteName и дальше уже его не берет. Что можно сделать? Кроме как разбить операцию на два шага, в первом брать урл и передавать его во вторую страницу, где инициируется CKEDITOR.... что очень не хотелось бы.
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
it_monk
@it_monk
Разработчик в oncloud.ru
У CKEDITOR нет возможности изменять filebrowserImageUploadUrl динамически.

Наиболее простое решение:

$("#SiteName").change(function () {
  setcookie('upload_site', $(this).val());
}).change();


А на стороне сервера получать значение upload_site из кукисов вместо получения его из GET['Site'] как сейчас.

На всякий случай, реализация setcookie
function setcookie(name, value, expires, path, domain, secure) {
    expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString());
    var r = [name + "=" + escape(value)], s, i;
    for(i in s = {expires: expires, path: path, domain: domain}){
        s[i] && r.push(i + "=" + s[i]);
    }
    return secure && r.push("secure"), document.cookie = r.join(";"), true;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sect0R
@Sect0R
Full Stack Developer
Попробуйте так:
var editor = CKEDITOR.replace('ae-textarea-text', {
        filebrowserImageUploadUrl: '/Sites/UploadImgToSite',
        height: 850,
        width: 800       
    });
$('#SiteName').change(function() {
  editor.config.filebrowserImageUploadUrl = '/Sites/UploadImgToSite?Site=' + $("#SiteName").val();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы