2012-07-05 98 views
4

我正在尝试使用Zemanta的小部件和Redactor HTML编辑器。我无法让Zemanta找到Redactor的iframe/content,并能够点击其中一个小部件后发送更新。我怎样才能让Zemanta和Redactor一起工作?

Redactor创建iframe,但保留真实textarea幕后,我想发送更新之间,但我不知道如何一次更新。如果我使用它的ID来更新textarea,它可以正常工作,但除非点击code view,否则我不会在Redactor中看到它。如果我使用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; 
      } 

回答

2

安德拉兹从这里Zemanta的。

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

由于Redactor编辑器的表现稍微不符合标准,也许最好的办法是转向他们的支持。

+0

有同样的问题...编辑作者还没有回复,这是一个耻辱,因为他们的编辑几乎完美。 – holden 2012-07-16 11:12:59

1

作为Andraz指出,重写/改变只有get_editor()在这种情况下是不够的。不过,我可以指出一个不同的解决方案。其他编辑者似乎更新了他们经常使用iframe升级的textarea,如果不是这样,你会发现它们好像它们保持相同的状态。现在,如果您只使用其中一个,则可以通过JavaScript将当前活动的内容复制到后台的某个关键操作(保存,更新)。这种方法可以为您节省大量时间,实施起来可能非常简单。

这对你有帮助吗?

相关问题