2012-02-10 11 views
2

私はこのソリューションをすべて探していますが、答えが見つからないので、最後の希望です。"ソースの表示"モードでhtmlを挿入すると、cleditorで "insertHtmlコマンドを実行中にエラーが発生しました"というメッセージが表示される

cleditorに関して、誰かが "ソースの表示"モードで "inserthtml"コマンドを作成する方法を知っていますか?

現在、私はcleditorのテキストエリアに文字列を挿入し、ボタンのOnClickハンドラに接続する方法があります:上記

editor.focus(); 
setTimeout(function() { editor.execCommand('inserthtml', stringToInsert); }, 0); 

は、通常のリッチテキストモードでは正常に動作しますが、あなたがしながら、それを実行しようとした場合ソースの表示モードでは、次のことが起こります:Firefoxので

  • を、それが言う小さなメッセージポップアップする「 inserthtmlコマンドを実行エラー。」 Chromeの場合
  • 、それは静かにIEで
  • を失敗:
    • テキストエリアが空だ​​った場合、私はjqueryのように見えるもので、 "Y(a)の.pasteHTML(C)" でのVisual Studioでブレークポイントにヒット。 cleditor.min.jsを開き、「Microsoft JScript実行時エラー:不明なエラー」というメッセージが表示されます。
    • テキストエリアに既にテキストが含まれている場合、同じファイル内の「a.range [0] .select()」のブレークポイントに「Microsoft JScriptランタイムエラー:エラーのために操作を完了できませんでした800a025e。

答えて

0

こんにちは私はちょうど

リターンを追加し、私はあなたによって貼り付けているコードは、この関数の最後にボタンのクリック機能 で実行されているとhere

として、それは非常にsimmilar問題だと思います偽;

そのようsopmething追加:

関数someClick(E、データ){

// Get the editor 
    var editor = data.editor; 

    editor.focus(); 
    setTimeout(function() { editor.execCommand('inserthtml', stringToInsert); }, 0); 

    return false; 

}

編集:

あなたが正しいですうん、それはそう簡単ではありません。ときあなたがテキストモードになっているときにあなたのテキストエリアが実際にiframeである通常のモードになっていれば、あなたのテキストエリアは再​​びテキストエリアになっているので、あなたの中のデータを編集するには

$('#mytextarea').val() 

あなたが使用することができます最後に何かを追加したい場合:

setTimeout(function() {$('#mytextarea').val($('#mytextarea').val()+'aaaaa') }, 3000);  

あなたが現在ursorのcositionで挿入したい場合は、これは役立つはず:すべてのCursor position in a textarea (character index, not x/y coordinates)

+0

まず、あなたに感謝します返信のために。それだけが簡単なら!私は以前にその解決策を見つけましたが、それは機能しません。少なくとも私のためではありません。 – lifebmad

+0

私の答えがうまくいけば+1し、誰かがそれを将来使用するかもしれません。 – firegnom

+0

ありがとうございました!私が必要としていた重要な情報は次のとおりです: _通常のモードであなたのテキストエリアは実際にiframeです。ソースモードになっていると、テキストエリアは再​​びテキストエリアになります_ 誰かがこれに苦労している場合、これが私が解決した方法です: 'editor.focus(); if(!editor.sourceMode()){ setTimeout(function(){editor.execCommand( 'inserthtml'、stringToInsert);}、0); } else { setTimeout(function(){insertAtCursor($( "#myTextArea")。get(0)、stringToInsert);}、0); } ' もちろん、insertAtCursor()メソッドを作成する必要があります。私はフォーマットが乱雑であれば謝罪します。 – lifebmad

関連する問題