Javascript jQuery+;InnovaStudio所见即所得编辑器
我试图避免硬编码这个WYSIWYG编辑器的每个实例,所以我使用jQuery根据函数名创建一个each()循环。令人烦恼的是,当我尝试时,InnovaStudio似乎会爆炸 尝试#1Javascript 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 = '
<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();