2 Stimmen

Ändern des Wertes eines Telerik RadEditors mit Javascript/jQuery

Ich versuche, den HTML-Code eines Telerik RadEditor mit Javascript manuell zu bereinigen, aber ich kann nicht den richtigen Ort finden, um den Wert zu speichern, so dass er bei der Rückmeldung gespeichert wird.

Hier ist das JS, das 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, mit JavaScript auf das Telerik RadEditor-Objekt zuzugreifen (mit OnClientCommandExecuted() ?), damit ich auf die .get_html() et .set_html(value) Funktionen? Wenn nicht, welche Werte muss ich vor der Rückbuchung einstellen?

4voto

W3Max Punkte 3250

Warum benutzen Sie nicht benutzerdefinierte Inhaltsfilter .

0voto

travis Punkte 34588

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

Edit: Hier ist die Lösung, die ich für meine InitSaveEvent() Funktion:

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;
        }
    }
};

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X