JavaScript frame

Статус
В этой теме нельзя размещать новые ответы.

almary

Постоялец
Регистрация
1 Апр 2006
Сообщения
93
Реакции
164
Всем привет!

Возникла проблемка, есть плагин редактора для jquery, по структуре программы, мне потребовалось сделать скрытый див с редактором и перетаскивать его по структуре в нужное место (заюзан в блоге для ответов на каменты). Этот слой я сначала делаю $('#div_editor').show() (на этом месте все ок) и перетаскиваю его в нужное место $('div_editor').insertAfter($('#metka_dlya_vstavki'); и при этом действии теряю контроль над фреймом редактора и в этом фрейме я уже не могу писать текст, точнее мне запрещен доступ к нему.

Если я при перетаскивании делаю такую фишку:
document.getElementById('div_editor').contentWindow.document.designMode = 'ON';
document.getElementById('div_editor').contentWindow.document.open();
document.getElementById('div_editor').contentWindow.document.write('');
document.getElementById('div_editor').contentWindow.document.close();

я получаю доступ к фрейму, но при жмякании по кнопкам тулбара вылетает в FF месага [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: Для просмотра ссылки Войди или Зарегистрируйся :: anonymous :: line 46" data: no]

т.е. по всей видимости мне нужно как-то активировать фрейм в классе редактора, но как это сделать фиг знает, я в JS не силен.

Редактор заюзан как плагин для Jquery, собственно вот он сам Для просмотра ссылки Войди или Зарегистрируйся

Вопрос в том как сохранить права над ифреймом и чтобы при "таскании" редактора в нужные места такого не происходило?

За ценный совет с меня на пиво :)
 
Вопрос в том как сохранить права над ифреймом и чтобы при "таскании" редактора в нужные места такого не происходило?
Аналогичную задачу решал в своё время для TinyMCE. Тоже аналогичные же симптомы были, стал гуглить доки, оказалось, что есть какая-то то ли бага, то ли фича с этими фреймами, что если хочешь перенести их в новое место - нет иного варианта, кроме как удалить и создать заново. Собсно что я и сделал - сначала удаляем на старом месте, потом создаём на новом. Сразу всё отлично стало.
Единственная тонкость - скрипт должен быть правильно написан (не должно быть утечки ссылок), иначе при частых переносах память будет жраццо не по деццки.
 
т.е. заново придется редактор генерить?
 
Ммм... Я, честно говоря, не знаю, как создаётся/генерится тот редактор, которым вы пользуетесь (что там лично вам приходится генерить, а что генерит сам редактор), но с тиней всё просто. Если я не ошибаюсь, одним вызовом метода объекта редактора его уничтожил, другим вызовом метода фабрики создал новый. Всё. Ну и удостоверился по коду, что нигде не осталось висящих ссылок на прошлый объект редактора (но это уже стандартный вопрос дисциплины кодирования).
 
если честно я понятия не имею как редактор создается и что происходит в нем, в JS я всего вторую неделю копаюсь и сразу с такой траблой столкнулся :( сама загрузка происходит вот так:

$(document).ready(function(){
$('.rte').rte({
css: 'default.css',
width: '99%',
controls_rte: rte_toolbar,
controls_html: html_toolbar
});
});
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху