日期:2014-05-16  浏览次数:20362 次

jquery为基的编辑器开发问题。
目前学习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>