Javascript / jQueryを使用してTelerik RadEditorの値を変更する
-
22-07-2019 - |
質問
Telerik RadEditorのHTMLをJavascriptで手動でクリーンアップしようとしていますが、値を保存する正しい場所が見つからないため、ポストバックで保存されます。
ここに私が持っているJSがあります:
$(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();
});
.get_html()
およびにアクセスできるように、JavaScriptでTelerik RadEditorオブジェクトにアクセスする方法はありますか(
関数?そうでない場合、ポストバックする前にどの値を設定する必要がありますか? OnClientCommandExecuted()
を使用)? .set_html(value)
解決
カスタムコンテンツフィルターを使用しない理由
他のヒント
ああ、Telerikの組み込み $ find()
関数を発見しました: http://www.telerik.com/help/aspnet-ajax/editor_getingreferencetoradeditor.html
編集:ここに私の InitSaveEvent()
関数のために思いついた解決策があります:
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;
}
}
};
所属していません StackOverflow