保存并加载Bootstrap Wysiwyg编辑器内容
Save and Load Bootstrap Wysiwyg editor content
我使用的是Bootstrap Wysiwyg Editor。它看起来很棒,添加我的文本和插入的图像到内容区。
所有我需要的是我想保存到数据库中的内容,再次当用户从下拉菜单加载模板名称时,我需要从数据库中填充编辑器。
我尝试了$('#editor').html()
,但不确定如何将此数据发送到服务器
注:使用ASP.Net MVC
(我不知道这是否是最好的方法,但它正在工作)
考虑一个简单的模型:
public class Contact
{
public string Notes { get; set; }
}
我使用一个简单的jquery脚本,以获得所见即所得的内容,并将其放入一个隐藏的输入。
当用户点击"保存"按钮时,我会自动执行此操作。
JS:
<script language=javascript>
$(function () {
$('#NotesWysiwyg').wysiwyg();
$('#btnSave').bind('click', function () {
$("#Notes").val($("#NotesWysiwyg").html().replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'));
});
});
HTML内容:
<div id="NotesWysiwyg"style="height:166px; width:395px; border:1px solid lightgray;display:table-cell"></div>
@Html.HiddenFor(contact => contact.Notes)
<button id="btnSave" type="submit">Save</button>
服务器端:
// Workaround : Encode WYSIWYG HTML
if (model.Notes != null)
model.Notes = WebUtility.HtmlDecode(model.Notes);
使用ajax保存数据(反之亦然)
<>之前. ajax({美元类型:"文章",url: your_url,编辑数据:$ (' # '). html (),成功:成功,数据类型:数据类型});要将内容发送到服务器保存,看起来很简单,只需通过$("#editor").html()获取数据并将其发送到服务器端。
要将数据加载到编辑器,请这样做:
$("#editor").html("<div><ul><li>demo</li></ul></div>")
不要像这样将转义后的内容放到编辑器中:
$("#editor").html("<div><ul><li>demo</li></ul></div>")
大多数服务器端视图转义输出,但编辑器不能接受转义格式。
我只是使用了一个隐藏的文本区,并在表单提交时从编辑器复制了html。
我还使用了一个data属性来指定目标输入名称,以便您可以在同一页面上的多个编辑器中使用此方法。
编辑器Html:<div id="editor" name="editor" data-target="content" class="form-control wysiwyg mt-lg">*<?php fill the value on loading ?>*</div>
隐藏文本区Html:
<textarea type="text" class="hidden" name="content" id="content"></textarea>
提交按钮html:
<button type="submit" class="btn btn-danger copyeditor">Save</button>
Js:
$(".copyeditor").on("click", function() {
var targetName = $("#editor").attr('data-target');
$('#'+targetName).val($('#editor').html());
});
css:
.hidden {
display: none !important;
visibility: hidden !important;
}
在尝试了一些选项(加载数据)后,我找到了一个解决方案。
var shortdescrip = STRING1;
var findInit = '<';
var reInit = new RegExp(findInit,'g');
shortdescrip = shortdescrip.replace(reInit, '<');
var findOut = '>';
var reOut = new RegExp(findOut, 'g');
shortdescrip = shortdescrip.replace(reInit, '<').replace(reOut,'>');
$("#div1").html(shortdescrip);
必须将div1替换为包含内容的div的id,将STRING1替换为要加载的字符串。
相关文章:
- load页面中的wysiwyg编辑器
- Basecamp的Trix WYSIWYG编辑器gem没有在Rails 4应用程序中保存文件附件
- 发现<br>使用window.getSelection在wysiwyg编辑器中定位
- "$(elementId+“_editor”)为空;在magento中打开wysiwyg编辑器时出现警告框
- 如何计算wysiwyg编辑器javascript中的字数
- 哪个wysiwyg编辑器与fancybox配合得很好
- 引导程序wysiwyg编辑器未显示
- 如何使用引导程序验证来验证wysiwyg编辑器
- 如何添加'选项卡'功能在我的自定义wysiwyg编辑器中
- jquery对话框中的wysiwyg编辑器不起作用
- 如何在wysiwyg编辑器中按需隐藏光标闪烁符(插入符号)?(redector.js)
- wysiwyg编辑器未显示活动按钮
- 在WordPress文本区元框中添加wysiwyg编辑器
- 保存并加载Bootstrap Wysiwyg编辑器内容
- Stackoverflow WYSIWYG Pagedown.js编辑器限制实时预览,点击而不是按下键
- 如何在Joomla的WYSIWYG编辑器中的mailto链接中包含&号?
- Textarea不能用wysiwyg编辑器提交到MySQL
- 如何将wysiwyg编辑器集成到jQuery模板中
- Wysiwyg HTML编辑器内置在HTML /javascript的位置绝对元素
- 我怎么借PyroCMS'WYSIWYG编辑器的一个我自己的模块