4

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

Redactor 创建一个iframe,但将真实textarea隐藏在幕后,我想在两者之间发送更新,但我不知道如何同时更新两者。如果我更新textareausing it's ID,它可以工作,但除非我单击 ,否则我在 Redactor 中看不到它code view。如果我使用iframe该类,我会在 redactor 中看到它,但它不会在 内部进行更改textarea,并且当我保存时,我什么也得不到。

.redactor_frame (redactor IFRAME)
#zemanta_content (textarea)

如何使用 Zemanta 的小部件更新两者?

            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;
            }
4

2 回答 2

2

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

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

由于 Redactor 编辑器的行为有点不标准,也许最好的办法是求助于他们的支持。

于 2012-07-06T17:07:41.687 回答
1

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

这对你有帮助吗?

于 2012-07-06T18:54:26.657 回答