Как я могу заставить Zemanta и Redactor работать вместе?
Я пытаюсь использовать виджеты Zemanta и редактор HTML Redactor вместе. Я не могу заставить Земанту найти Редактора iframe/content
и иметь возможность отправлять обновления на него после нажатия на один из виджетов.
Редактор создает iframe
, но держит реальный textarea
Я скрываю за кулисами, я полагаю, что отправка обновлений между ними, но я не могу понять, как обновить оба сразу. Если я обновлю textarea
используя это ID
, это работает, но я не вижу его в Redactor, если я не нажму code view
, Если я использую iframe
класс, я вижу это в редакторе, но он не вносит изменения внутри textarea
и когда я спасаю, я ничего не получаю.
.redactor_frame (redactor IFRAME)
#zemanta_content (textarea)
Как я могу обновить оба, используя виджет Земанты?
get_editor: function () {
var elm = null, win = null, editor = {element: null, property: null, type: null, win: null};
try {
elm = $('.redactor_frame').get(0);
if (elm && elm.contentWindow) {
win = elm.contentWindow;
elm = null;
} else {
elm = $('#zemanta_content').get(0);
}
editor = win && {element: win.document.body, property: 'innerHTML', type: 'RTE', win: win} ||
elm && {element: elm, property: 'value', type: elm.tagName.toLowerCase(), win: null} ||
editor;
} catch (er) {
$.zemanta.log(er);
}
return editor;
}
2 ответа
Андраз из Земанты здесь.
Я не уверен, что это будет легко исправить, но мы обратимся к нашим разработчикам внешнего интерфейса, чтобы взглянуть на это.
Поскольку редактор Redactor ведет себя немного нестандартно, возможно, лучше всего обратиться к его поддержке.
Как указывал Андраз, переопределение / изменение только get_editor() в этом случае будет недостаточным. Однако я могу скорее указать на другое решение. Другие редакторы, кажется, обновляют текстовую область, которую они обновляют, с помощью iframe довольно часто, если не постоянно, и вы видите, что они находятся в одном и том же состоянии. Теперь, если вы используете только один, вы можете скопировать содержимое с помощью JavaScript из текущего активного в фоновое при некотором ключевом действии (сохранить, обновить). Такой подход сэкономит вам много времени и, вероятно, очень прост в реализации.
Вам это помогло?