2010-04-20 134 views
-1

我想避免硬编码这个所见即所得编辑器的每个实例,所以我使用jQuery创建一个基于函数名称的each()循环。令人讨厌的InnovaStudio似乎在我尝试时会爆炸。jQuery + InnovaStudio所见即所得编辑器

Documentation

尝试#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> 

影响

工作得很好,但当然只适用于编辑器的一个实例。如果我想要多个实例,我需要使用每个实例。

尝试#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> 

影响

替换整个HTML身体我与JUST所见即所得相关的代码页和抱怨,因为没有JS是可用的(甚至没有Firebug的,所以无法调试)。

请注意,我仍在硬编码名称。我只在我正在测试的页面上有一个实例,所以当我得到这个硬编码名称工作时,我将得到注释掉的代码沿着相同的方向工作。


有人知道这到底是怎么回事吗?

回答

0

你为什么不使用自己的初始化代码自4.3版本:

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


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

的方法是oUtil.initializeEditor(选择,选项)。第一个参数是选择器,第二个参数是JSON格式的编辑器属性。

选择器可:

CSS类名,如果类名被指定与指定的类名称的所有文字区域将与编辑器所取代。 Textarea ID。如果它是一个Id,则必须添加前缀'#',例如oUtil.initializeEditor(“#mytextarea”)。 Textarea对象。 第二个参数是编辑器的属性。可以在此处指定所有有效的编辑器属性,例如width,height,cmdAssetManager,toolbarMode等。

请注意,可以从页面加载或文档就绪事件或页面加载期间调用此方法(只要对象选择器已经被渲染)。该方法在页面包含编辑器脚本时自动可用。

+0

您还可以试用Eltre编辑器。它使用jQuery和JavaScript。 http://elrte.org/demo – Plippie 2010-10-13 08:52:37

+0

所以使用这个,我怎么从它得到的HTML?这个编辑器非常复杂,支持很多功能,但是他们的文档是有限的。我家灯库的灯泡有更多的文件,它远远不够。 – 2013-06-08 22:07:55

2

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

1

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

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

当第二个参数被冷落,InnovaStudio,通过简单地利用写入HTML输出到文件:

document.write(); 

希望这有助于!