我怎样才能让Zemanta和Redactor一起工作

How can I get Zemanta and Redactor to work together?

本文关键字:Redactor 一起 工作 Zemanta      更新时间:2023-09-26

我正在尝试同时使用Zemanta的小部件和Redactor HTML编辑器。 我无法让 Zemanta 找到 Redactor 的iframe/content,并在单击其中一个小部件后向其发送更新。

Redactor创建了一个iframe,但将真正的textarea隐藏在幕后,我想在两者之间发送更新,但我无法弄清楚如何同时更新两者。 如果我使用它更新textarea ID ,它可以工作,但除非我单击code view,否则我在 Redactor 中看不到它。 如果我使用 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;
            }

来自泽曼塔的安德拉兹在这里。

我不确定这会是一件容易解决的事情,但我们会让我们的前端开发人员看看这个问题。

由于 Redactor 编辑器的行为方式略非标准,也许最好的办法是寻求他们的支持。

正如Andraz指出的那样,在这种情况下仅覆盖/更改get_editor()是不够的。但是,我可以指出不同的解决方案。其他编辑器似乎经常更新他们使用 iframe 升级的文本区域,如果不是经常更新的话,你会看到它们保持相同的状态。现在,如果您只使用一个,您可以通过 JavaScript 将内容从当前活动的内容复制到后台内容,执行某些关键操作(保存、更新)。这种方法可以为您节省大量时间,并且实施起来可能非常简单。

这对你有帮助吗?