2

ユーザーが行をフィルタリング/選択してエディターウィンドウに挿入できるように、tinyMCEポップアップ内に(数千行の)テーブルが必要です。だから私はサーバー側の処理とフィルタリングを備えたDataTablesを持っています。関連コードは

<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script type="text/javascript" src="js/dialog.js"></script>
<script type="text/javascript" charset="utf-8">
    $(document).ready( function() {
    var respTable = $('#resp_table').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": 'insert_resp.php',
        ...

..等。

JSON レスポンスは良好です。

"sEcho":"1","iTotalRecords":"18783","iTotalDisplayRecords":"18783","aaData":[["0","1","2","3","4","5"],["0","1","2","3","4","5"]]

それは完全に機能しますが、結果をエディター ウィンドウに戻すことができる tinymce ポップアップ スクリプトを除外した場合に限ります。

<!--<script type="text/javascript" src="../../tiny_mce_popup.js"></script>-->
<script type="text/javascript" src="js/dialog.js"></script>
<script type="text/javascript" charset="utf-8">
    $(document).ready( function() {
    var respTable = $('#resp_table').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": 'insert_resp.php',
        ...

もちろん、この方法では「tinyMCEPopup is not defined」というエラーが表示されますが、テーブルは機能します。

コメントアウトしないと、コンソールにエラーも警告も表示されず、XHR 要求と応答は同じですが、Datatables には「処理中」と表示され、テーブルにはデータが入力されません。

また、応答をテーブル init に直接含めると、それも機能します。

<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script type="text/javascript" src="js/dialog.js"></script>
<script type="text/javascript" charset="utf-8">
    $(document).ready( function() {
    var respTable = $('#resp_table').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": 'insert_resp.php',
        "sEcho":"1","iTotalRecords":"18783","iTotalDisplayRecords":"18783","aaData":[["0","1","2","3","4","5"],["0","1","2","3","4","5"]],
        ...

この最後のスクリプトでは、JSON 応答に問題があると思われるかもしれませんが、最初の (tinymce popup) 行をコメントアウトすると正常に動作します..

また、tinyMCE plugins フォルダーの /js/dialog.js の 1 行目は、

tinyMCEPopup.requireLangPack();

それをコメントアウトすると、DataTables が機能します。それが参照する en_dlg.js の内部は、

tinyMCE.addI18n('en.linktest_dlg',{
  //title : 'Title',
  //insert : 'Insert it',
  //cancel : 'Back'
});

コメントアウトされているかどうかにかかわらず、これが原因のようです。変じゃないですか..

ここで何が起こっているのか誰か教えてもらえますか? 3日間ずっと頭を掻いていて、痛い..

4

0 に答える 0