2012-07-05 59 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將當前活動的內容複製到後臺的某個關鍵操作(保存,更新)。這種方法可以爲您節省大量時間,實施起來可能非常簡單。

這對你有幫助嗎?

相關問題