1

joomla 組み込み関数を使用して、jQuery ダイアログ ボックス内のページに tinyMCE エディターを作成しています。ただし、ダイアログ ボックスが表示され、tinyMCE エディターは読み取り専用モードのようになります。

これは、エディターをエコーアウトする php 組み込み関数です。

<div id="PhoneCallCard" title="Phone Call Card" style="display:none;">      
    <?php
      $editor = JFactory::getEditor();                                                                                          
      echo $editor->display('commentz', $this->content, '600', '100', '60', '20', false);      
    ?>
</div>

これは、そのダイアログ ボックスを開く jQuery の実装です。

jQuery("#PhoneCallCard").dialog({
            height:500,
            width:800,
            modal: true,
            close: function(ev, ui){                                                
              jQuery('#tablepanelfightclubrequests .trSelected').removeClass('trSelected');                         
              },
            open:function({ //Everything I tried to activate the tinyMCE
           //tinyMCE.activeEditor.getBody().setAttribute('contenteditable', false);
           //tinyMCE.execCommand('mceRemoveControl',false,'commentz');
           //tinyMCE.execCommand('mceAddControl',false,'commentz');
           //tinyMCE.execCommand('mceFocus', false, 'commentz');
            }});

ここでも同様の問題が見つかりました jQueryUIモーダルダイアログでTinyMCEを入力できないのはなぜですか? ここでTinyMCE と JQuery ダイアログ: TinyMCE はダイアログで modal:true の場合のみ読み取りますが、どちらも私の問題を解決できません

4

5 に答える 5

2

ページの読み込み時に読み込みダイアログで同じ問題と修正が発生しました。例えば:

jQuery(function() {
jQuery( "#dialog_desc" ).dialog({
    modal: true,
    width: 600,
    height:500,
    autoOpen: false,
});
}

ダイアログを開きたいとき:

    jQuery( "#dialog_desc" ).dialog( "open" );

この助けを願っています!

于 2013-10-16T10:07:07.260 に答える
1

ダイアログの初期化時に待機時間が必要なため、TinyMCE がアクティブなときに settimeout が必要です。

例えば ​​:

$("#PositionShowDialog").dialog({
modal: true,
open: setTimeout('Change_TextareaToTinyMCE_OnPopup("#elementId");', 1000),
width: width,
......

tinymce がロードされているが、入力できない場合 (無効のように) 。setTimeout にもっと時間を設定する必要があります。

申し訳ありませんが、私の英語の肌は良くありません

于 2013-05-29T16:24:34.683 に答える
1

ダイアログがロードされた後、エディターをロードする必要があります。あなたができることは次のとおりです。

  1. $editor->display メソッドを使用して、現在行っているようにエディターをロードします
  2. jquery ui ダイアログを開く前に、エディターを切り離します。
  3. UI ダイアログを表示し、エディタがダイアログの後に読み込まれるように、わずかな時間の遅延で再度エディタを読み込みます。

ここにサンプルコードがあります

ダイアログのオープンがトリガーされた後にこのコードを使用します

if ((tinyMCE != undefined) && (tinyMCE.activeEditor != undefined)){
  tinyMCE.activeEditor.remove();
  setTimeout(function(){
    tinyMCE.execCommand('mceAddControl', false, 'commentz');
  },500);
}
于 2013-05-27T11:01:51.313 に答える
1

私もそのような同じエラーが発生しました...私の最初のコード

$( "#f_edit_gallery" ).dialog({
autoOpen: false,
resizable: true,
show: "clip",
height:450,
width:850,
modal: true
});

オプションを削除した後

show: "clip",

このようになる

$( "#f_edit_gallery" ).dialog({
    autoOpen: false,
    resizable: true,
    height:450,
    width:850,
    modal: true
    });

その後、tinyMCEはうまく実行されます

于 2014-02-26T00:35:32.587 に答える