Frage

Ich versuche, den HTML-Code einer Telerik RadEditor mit Javascript manuell zu reinigen, aber ich kann nicht scheinen, den richtigen Platz zu finden, um den Wert zu speichern, so dass es auf Post gespeichert wird zurück.

Hier ist die JS ich habe:

$(function () {    
    jQuery.fixHash = function ($html) {      

        // modify $html

        return $html;
    };

    $("#adminEditingArea input[id$='SaveButton']").unbind("click").click(function () {
        $("iframe[id$='_contentIframe']").trigger("save");

        // call .net postback

        return false;
    });

});

var editorSaveEventInit = false;
function InitSaveEvent() {
    if (!editorSaveEventInit) {
        var $EditFrames = $("iframe[id$='_contentIframe']");
        if ($EditFrames && $EditFrames.length > 0) {
            $EditFrames.bind("save", function (e) {
                var $thisFrame = $(this);
                var thisFrameContents = $thisFrame.contents();
                if (thisFrameContents) {
                    var telerikContentIFrame = thisFrameContents.get(0);
                    var $body = $("body", telerikContentIFrame);
                    var html = $.fixHash($body).html();
                    $body.html(html);

                    // also tried storing the modified HTML in the textarea, but it doesn't seem to save:
                    //$thisFrame.prev("textarea").html(encodeURIComponent("<body>" + html + "</body>"));
                }
            });
            editorSaveEventInit = true;
        }
    }
};

$(window).load(function () {
    InitSaveEvent();
});

Gibt es eine Möglichkeit, die Telerik RadEditor Objekt mit JavaScript (mit OnClientCommandExecuted()?) Zuzugreifen, so dass ich die .get_html() und .set_html(value) Funktionen zugreifen kann? Wenn nicht, welche Werte ich vor der Veröffentlichung wieder einstellen muß?

War es hilfreich?

Lösung

Warum gehst du nicht verwenden individuelle Content-Filter .

Andere Tipps

Ah, gerade entdeckt Telerik eingebaute in $find() Funktion: http: // www.telerik.com/help/aspnet-ajax/editor_getingreferencetoradeditor.html

Edit: hier ist die Lösung, die ich mit meiner InitSaveEvent() Funktion kam:

var editorSaveEventInit = false;
function InitSaveEvent() {
    if (!editorSaveEventInit) {
        var $EditFrames = $("iframe[id$='_contentIframe']");
        if ($EditFrames && $EditFrames.length > 0) {
            $EditFrames.bind("save", function (e) {
                var $thisFrame = $(this);
                var thisFrameContents = $thisFrame.contents();
                if (thisFrameContents) {
                    var telerikContentIFrame = thisFrameContents.get(0);
                    var $body = $("body", telerikContentIFrame);
                    var html = $.fixHash($body).html();
                    // SOLUTION!
                    var $radeditor = $thisFrame.parents("div.RadEditor.Telerik:eq(0)");
                    var editor = $find($radeditor.attr("id"));
                    editor.set_html(html);
                    // ☺
                }
            });
            editorSaveEventInit = true;
        }
    }
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top