想在弹出窗口中显示百度的富文本编辑器插件ueditor;
弹出窗口用的是jQuery ui的dialog方法;
如果页面加载后直接弹出窗口的话,可以显示ueditor;
但是如果通过按钮点击弹出窗口的话,就无法显示ueditor;
ueditor应该是网页加载的时候就自动创建的,现在通过点击按钮弹出窗口如何加载?
表单代码(HTML部分):
<form id="question" title="提问">
<p>
<label for="title">问题名称:</label>
<input type="text" class="text" name="title" id="title" style="width: 520px;" />
<span class="star">*</span>
</p>
<p>
<script id="myEditor" type="text/plain"></script>
</p>
</form>
ueditor初始化代码:
<script>
var um = UM.getEditor('myEditor');
</script>
点击按钮弹窗的代码:
$('#question').dialog({
autoOpen : false,
resizable : false,
modal : true,
width : 600,
height : 450,
buttons : {
'发布' : function(){
$(this).submit();
},
'取消' : function(){
$(this).dialog('close');
}
},
closeText : '关闭',
});
$('#question_button').button().click(function(){
$('#question').dialog('open');
});
2.将ueditor.config.js, ueditor.all.js, jquery-ueditor.js 引用到HTML文件中
<script type="text/javascript" charset="utf-8" src="uEditor/ueditor.all.js"> </script>
<script type="text/javascript" charset="utf-8" src="js/jquery-ueditor.js"> </script>
这个其实想要两种方式可以实现,但是要理解 UE.getEditor()这个函数做了什么,第一次的时候传入id的参数的时候,**会检测之前**有没有实例化过,有的话,就返回这个实例化的对象,否则就会新建
UE.getEditor("id", 实例化完之后,放在一个隐藏的页面dom元素,使用的时候才去用将这个html放在想要用的地方,就是相当于一次实例化,到处可以copy;
UE.getEditor(id, 这个id是动态的,可以用一个时间戳的方式去实现,想要用的时候就做一个时间戳的id到里面去,特别适合弹窗,里面显示,然后就可以多次弹窗,多次实例化,可能要注意一下一些字号的选择时候,遇到z-index的层级问题