Javascript jQuery+;InnovaStudio所见即所得编辑器

Javascript jQuery+;InnovaStudio所见即所得编辑器,javascript,jquery,wysiwyg,Javascript,Jquery,Wysiwyg,我试图避免硬编码这个WYSIWYG编辑器的每个实例,所以我使用jQuery根据函数名创建一个each()循环。令人烦恼的是,当我尝试时,InnovaStudio似乎会爆炸 尝试#1 <script type="text/javascript"> /* id = $(this).attr('id'); if(id.length == 0) { id = '

我试图避免硬编码这个WYSIWYG编辑器的每个实例,所以我使用jQuery根据函数名创建一个each()循环。令人烦恼的是,当我尝试时,InnovaStudio似乎会爆炸

尝试#1

<script type="text/javascript">

            /*
            id = $(this).attr('id');
            if(id.length == 0)
            {
                id = 'wysiwyg-' + wysiwyg_count;
                 $(this).attr('id', id);
            }

            WYSIWYG[wysiwyg_count] = new InnovaEditor('WYSIWYG[' + wysiwyg_count + ']');
            WYSIWYG[wysiwyg_count].REPLACE(id);
            */

            var demo = new InnovaEditor('demo');
            demo.REPLACE('wysiwyg-1');

            console.log('loop');

 </script>

/*
id=$(this.attr('id');
如果(id.length==0)
{
id='wysiwyg-'+所见即所得计数;
$(this.attr('id',id);
}
所见即所得[WYSIWYG_计数]=新InnovaEditor('WYSIWYG['+WYSIWYG_计数+']);
所见即所得[所见即所得计数]。替换(id);
*/
var demo=新的InnovaEditor(“demo”);
演示。替换(“wysiwyg-1”);
log('loop');
效果

工作正常,但当然只适用于编辑器的单个实例。如果我想要多个实例,我需要在每个实例中使用一个

尝试#2:

<script type="text/javascript">

var wysiwyg_count = 1;
//var WYSIWYG = [];
var demo;

(function($) {
    $(function() {

        $('.wysiwyg-simple').each(function(){

            /*
            id = $(this).attr('id');
            if(id.length == 0)
            {
                id = 'wysiwyg-' + wysiwyg_count;
                 $(this).attr('id', id);
            }

            WYSIWYG[wysiwyg_count] = new InnovaEditor('WYSIWYG[' + wysiwyg_count + ']');
            WYSIWYG[wysiwyg_count].REPLACE(id);
            */

            demo = new InnovaEditor('demo');
            demo.REPLACE('wysiwyg-1');

            console.log('loop');
        });

    });
})(jQuery);
 </script>

var wysiwyg_计数=1;
//var WYSIWYG=[];
var演示;
(函数($){
$(函数(){
$('.wysiwyg simple')。每个(函数(){
/*
id=$(this.attr('id');
如果(id.length==0)
{
id='wysiwyg-'+所见即所得计数;
$(this.attr('id',id);
}
所见即所得[WYSIWYG_计数]=新InnovaEditor('WYSIWYG['+WYSIWYG_计数+']);
所见即所得[所见即所得计数]。替换(id);
*/
demo=新的InnovaEditor(“demo”);
演示。替换(“wysiwyg-1”);
log('loop');
});
});
})(jQuery);
效果

用WYSIWYG相关代码替换我页面的整个HTML正文,并抱怨没有可用的JS(甚至没有Firebug,因此无法调试)

请注意,我仍然在硬编码名称。我在测试它的页面上只有一个实例,所以当我使用这个硬编码的名称时,我会让注释掉的代码按照相同的方式工作



有人知道这里到底发生了什么吗?

解决方案:不要费心尝试使用InnovaStudio,而是使用CKEditor。

为什么不使用他们自己的初始化代码,因为版本4.3:

    <textarea class="innovaeditor">
content here...
</textarea>


<script>
oUtil.initializeEditor("innovaeditor", 
{width:"700px", height:"450px"}
);
</script>

内容在这里。。。
oUtil.initializeditor(“innovaeditor”,
{宽度:“700px”,高度:“450px”}
);
方法是oUtil.initializeditor(选择器,选项)。第一个参数是选择器,第二个参数是JSON格式的编辑器属性

选择器可以是:

Css类名,如果指定了类名,则具有指定类名的所有文本区域都将替换为编辑器。 Textarea Id。如果它是一个Id,则必须添加前缀“#”,例如oUtil.initializeditor(“mytextarea”)。 Textarea对象。 第二个参数是编辑器的属性。可以在此处指定所有有效编辑器的属性,例如宽度、高度、cmdAssetManager、toolbarMode等


请注意,此方法可以从page onload或document ready事件调用,也可以在page load期间调用(只要选择器引用的对象已经呈现)。当页面包含编辑器脚本时,此方法自动可用。

即使您选择了CKEditor,也可能对解决方案感兴趣。您可以为REPLACE函数提供第二个参数。第二个参数也应该是一个id,id来自能够接受html输出的元素(比如div、span、p)

忽略第二个参数时,InnovaStudio只需使用以下命令即可将html输出写入文档:

document.write();

希望这有帮助

您也可以试用Eltre编辑器。它使用jquery和javascript。那么使用这个,我如何从中获取html呢?这个编辑器非常复杂,支持很多功能,但是它们的文档是有限的。家得宝(home depot)的灯泡有更多的相关文档,但它的功能要小得多。
document.write();