2010-04-20 179 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(); 

希望這有助於!