不用把值传入隐藏的textarea,
编辑器要的就是textarea,不用textarea怎么编辑

解决方案 »

  1.   


    那如何编辑,textarea不支持html,怎么显示图片什么的?
      

  2.   

    你先看看人家是怎么做的比如TinyMCE,然后修修改改,再山寨一个.基础的东西很重要
      

  3.   

    一般width/height是手动传递进入你的编辑器js构造器里面,很少通过获取textarea的width/height css来初始化编辑器外观。。
      

  4.   

    textarea 只起承载被编辑的数据的作用
    如果你的编辑器不考虑表单方式提交的话,是不需要 textarea 的
      

  5.   

    各位大神,很难理解啊。对象:
    $.fn.myeditor=function(options){
    var defaults={
    width:"100",height:"100"
    }
    var newset=$.extend(defaults,options)
    }
    -------
    调用:
    $("#textarea").myeditor({width:"300"});
    <textarea name="textarea" id="textarea" ></textarea>
    大概是这样子的结构。设定的是textarea,但是用来输入展示的是div或者iframe。div或者iframe如何获取textarea的这些设定的属性?
    我一直想不明白的一点是:
    页面明明是<textarea name="textarea" id="textarea" ></textarea>这样的,但是实际上如何不知不觉地转成div或者iframe来使用??
      

  6.   

    请有经验的大神把这个运转机制说一说?我的办法是想在JS中获取textarea的高宽,将他赋予给编辑用的div,并将textarea设为隐藏,用div来代替他的位置。但是这是我自己想的,不知道传统上也是不是这样弄的?
      

  7.   

    那不是隐藏器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>
      

  8.   

    $(this).hide().after(div);这个似乎也是隐藏textarea了。
    看完你的代码我觉得应该思路没错了  可以进行下一步了。
      

  9.   

    textare肯定要隐藏了,不隐藏就没什意义了
    有个地方搞错了,用到默认配置去了。。var div = $('<div></div>')
                .css({ width: newset.width, height: newset.height, border: 'solid 1px black' })
      

  10.   


    ——————————————————
    我改过来了  不过奇怪的是代码没有起效,div没有显示出来,出来的是textarea。那个加粗的效果自然也没有了。我正在检查,看看哪里出问题了。