tinyMCE popup和DataTables之间的冲突与服务器端处理

时间:2013-05-04 09:11:16

标签: tinymce server-side jquery-datatables

我需要在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未定义'错误,但表格可以正常工作。

在没有注释的情况下,控制台没有错误,没有警告,XHR请求和响应是相同的,但是数据表显示'处理'而且表没有填充数据。

如果我将响应直接包含在表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插件文件夹的/js/dialog.js中,第1行是

tinyMCEPopup.requireLangPack();

如果我对此进行评论,那么DataTables就可以了。它所引用的en_dlg.js内部是

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

注释与否,这似乎是罪魁祸首。这不奇怪..

有人能教我这里发生了什么吗?我花了三天时间挠挠头,疼得厉害。

0 个答案:

没有答案