目前学习jquery开发编辑器,思路如下:
1、div展示所见即所得效果。2、将值传入隐藏的textarea
有一些难以理解的问题求助大家。
textarea在其中扮演的角色获取值、获取初始化设定。如高宽等,textarea的高宽等设定属性和div的高宽有什么联系,二者之间是如何切换或者联系的?这是我难以索解的问题。
------解决方案--------------------
不用把值传入隐藏的textarea,
编辑器要的就是textarea,不用textarea怎么编辑
------解决方案--------------------
你先看看人家是怎么做的比如TinyMCE,然后修修改改,再山寨一个.基础的东西很重要
------解决方案--------------------
一般width/height是手动传递进入你的编辑器js构造器里面,很少通过获取textarea的width/height css来初始化编辑器外观。。
------解决方案--------------------
textarea 只起承载被编辑的数据的作用
如果你的编辑器不考虑表单方式提交的话,是不需要 textarea 的
------解决方案--------------------
那不是隐藏器textarea,然后在textarea的后面插入一个可编辑的div或者iframe
<textarea name="textarea" id="textarea" ><b>要初始化的内容</b></textarea>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$.fn.myeditor = function (options) {
var defaults = {
width: "100", height: "100"
}
var newset = $.extend(defaults, options)
return this.each(function () {
var div = $('<div></div>')
.css({ width: defaults.width, height: defaults.height, border: 'solid 1px black' })
.attr('contentEditable', true).html($(this).val());
$(this).hide().after(div);
});
}
$("#textarea").myeditor({ width: "300" });
</script>