2012-05-11 24 views
0

私はウェブページを開発していますが、私はいくつかのJavaScriptコードでいくつかの問題に遭遇しました。javascriptを新しいjavascript要素内に保持

私はそのメインページに記載されているように、コピーするのと同じくらい簡単です、テキストエリアのためのWYSIWYG、としてNiceditを使用しています/私のWebページの任意の場所にこの2行を貼り付けますと偉大な作業だ

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> 
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>   

ページのデフォルトのテキストエリア。問題は、私はまた、より多くのテキストエリアを追加するには、このJavaScriptを持っていることです。

function addchapter() 
    { 
    if (num_chapter < 10) 
    { 
    var num=num_chapter+1; 
    document.getElementById('chapters').innerHTML += "<h3>Chapter " + num + "</h3> Title: <input type='text' name='titlechapter_" + num + "'><br>Content:<textarea name='chapter_" + num + "'></textarea>"; 
    } 
    else if (num_chapter == 10) 
    { 
    document.getElementById('chapters').innerHTML += "<br />Maximum is 10 chapters."; 
    } 
    num_chapter += 1; 
    } 

私はジャバスクリプトを通じてテキストエリアを追加するときに、それが適切なスタイルを持っていません。 Niceditを実装していません。文字領域はすべて標準であるため、どちらの場合でもコード間に違いはありません。あまりにも多くのjavascriptについてはわかりませんが、ページが読み込まれるときにNiceditコードが1回実行されるという問題があると思われます。 ページが読み込まれたとき(< =既に完了している)、addchapterの機能が実行されたときに、それを実行させる方法はありますか?

関連するHTMLビットがこれです:

<div id="chapters"> 
</div> 
<button type="button" onclick="addchapter()"> Add chapter </button> 

あなたは奇妙な行動を見ることができるマイページが この (リンク切れ)で、第1章の下で、あなたは、「追加の章」ボタンを参照してください。

ありがとうございました。

EDIT 1、エラーコンソール出力: それはこれをスローするページがロード:

"GET http://js.nicedit.com/nicEditIcons-latest.gif 
bkClass.extend.getStylenicEdit-latest.js:8 
bkClass.extend.constructnicEdit-latest.js:38 
AnicEdit-latest.js:8 
bkClass.extend.addInstancenicEdit-latest.js:37 
bkClass.extend.panelInstancenicEdit-latest.js:37 
nicEditors.allTextAreasnicEdit-latest.js:37 
bkLib.domLoaded" 

私は新しい章を追加する場合:

"Uncaught TypeError: Object #<bkClass> has no method 'removeInstance' 
bkClass.extend.checkReplacenicEdit-latest.js:37 
bkClass.extend.panelInstancenicEdit-latest.js:37 
nicEditors.allTextAreasnicEdit-latest.js:37 
(anonymous function)/file/new/:112 
onclick" 
+0

しようと{}のcatch(e)の{}ブロックを追加することができ、おそらくあなたは 'nicEditors'を呼び出して、あなたのように、それぞれ新たに作成されたtextarea要素を渡す必要がありますそれらを作成するか、 'nicEditors.allTextAreas'を呼び出したままにしておけば、すでに追加されているものを知ることができます。ドキュメンテーションはあなたにそれを伝えるべきです。 – RobG

+0

このエラーはどうやって解決しましたか? – Volatil3

+0

私は完全にNiceditを捨てて、より完全であなたがインストールできるplugginsのトンを持っている[CKEditor](http://ckeditor.com/)と一緒に行きました。 –

答えて

4

をあなたに固有のIDを割り当てる必要がありますページに追加するテキストフィールド。それをエディタに変換するには、それを呼び出すことができます。

nicEditors.findEditor(editorID); 

またはnicEditors.allTextAreas()に再度電話することができます。しかし、すでに存在するエディタから既存のコンテンツを削除するかどうかはわかりません。

出典:The API

+0

私は ''(新しい要素 'id = 'nnicedit''に代入)と'

+0

@FrankPresenciaFandosコンソールにエラーがありますか? – Jivings

+0

私はそれを探していましたが、それを得る方法を見つけることができませんでした。エラーをどのようにチェックするのですか?拡張機能を通して?私はUbuntu用のChromeを使用していますが、推奨事項はありますか? –

0

あなたは私はあなたがあなたの問題を知っていると思うあなたのコード

jQuery('.js-control-des').each(function() { 
      var index = jQuery(this).attr('lang'); 
      var editor = jQuery(this).find('textarea'); 
      var editor_id = editor.attr('id'); 
      var editor_loaded = editor.attr('rel'); 
      if (editor_loaded == undefined || editor_loaded != null || editor_loaded == 0) { 
       var editor_new_width = parseFloat(editor.css('min-width')) + 7 + 'px'; 
       editor.css({ 
        width: editor_new_width, 
        'max-width': editor_new_width, 
        'min-width': editor_new_width 
       }); 
       try { 
        new nicEditor({maxHeight: 300}).panelInstance(editor_id); 
        jQuery(this).attr('rel', 'editor-loaded'); 
        jQuery(this).find('.nicEdit-main').attr('data-index', index).keyup(function (e) { 
         if (vnLineUcp.editorKeyUp(jQuery(this)) == false) { 
          return false; 
         } 
        }); 
       } catch (e) { 
       } 
      } 
     }); 
関連する問題