4

ZemantaのウィジェットとRedactor HTML エディターを一緒に使用しようとしています。ウィジェットの 1 つをクリックした後、Zemanta で Redactor を見つけiframe/contentて更新を送信することができません。

Redactor は を作成しますiframeが、実際textareaは舞台裏に隠されています。その間に更新を送信すると思いますが、両方を一度に更新する方法がわかりません。textareaを使用して更新するIDと機能しますが、クリックしない限り Redactor に表示されませんcode view。クラスを使用するiframeと、リダクターで表示されますが、内部で変更が行われず、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 でアップグレードするテキストエリアを頻繁に更新しているように見えますが、常に同じ状態を保持しているように見えます。現在、1 つしか使用していない場合は、JavaScript を介して、いくつかの重要なアクション (保存、更新) で、現在アクティブなコンテンツからバックグラウンドのコンテンツにコピーできます。このアプローチにより、多くの時間を節約でき、おそらく非常に簡単に実装できます。

これは役に立ちましたか?

于 2012-07-06T18:54:26.657 に答える