6

tinyMCEを使用してコンテンツを編集していますが、データをポストバックする前に何をスクラブするかについてクリーンアップルールが設定されています。しかし、私のアプリの他の領域では、同じコンテンツを表示する必要があります...データベースに配置される前に正しくスクラブされたという事実を期待したくありません(別のアプリによって編集された可能性があります)。

一貫性を保つために(そして重複する作業をする必要がないように)、JavaScriptでtinyMCEクリーンアップ/スクラバーを直接使用して、表示のためだけにDOMに配置する前に他のコンテンツをスクラブできるようにする方法はありますか?何かのようなもの:

var data = getDataViaAjax(); 
var content = tinymce.scrubber.cleanup(data); 
$("someElement").append(content);

更新-それを行う方法の例

function parse(html) {
    var settings = { 
       invalid_elements : "script,object,embed,link,style,form,input,iframe",
       valid_elements:"a[href],img[src],li,ul,ol,span,div,p,br,blockquote,h1,h2,h3,h4,h5,h6,strong/b,em/i,li,ul,ol"
    };

    var schema = new tinymce.html.Schema(settings);
    var parser = new tinymce.html.DomParser({}, schema);
    var serializer = new tinymce.html.Serializer({}, schema);

    return serializer.serialize(parser.parse(html));
}
4

1 に答える 1

1

この機能を使用するための事前定義された方法はありません。mceCleanup-Actionをtinymceなしで機能させるには、自分で作成する必要がありますが、いくつかの変更を加えるだけで、事前定義されたjavascriptクラスを使用できるはずです。開発者のtinymceバージョン(非圧縮)をご覧ください。serializeそこで、ディレクトリにあるファイル内の関数から始めることがSerializer.jsできますclasses/dom

于 2012-04-12T08:19:43.670 に答える