Ändern Sie den Wert eines Telerik RadEditor mit Javascript / jQuery
-
22-07-2019 - |
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ß?
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;
}
}
};