jhtmlarea wysiwyg编辑器 - 添加表格

时间:2014-03-05 18:01:59

标签: jquery jhtmlarea

我已经进行了大量搜索,寻找有关添加自定义工具栏按钮的信息,该按钮可以将表格插入编辑器中。

这是我能找到的全部内容(顺便说一下,没有回答这个问题): Adding tables in jHtmlArea

任何人都有关于如何做或看过类似我可以作为参考的东西的想法?

感谢 乔

1 个答案:

答案 0 :(得分:2)

很抱歉重振旧主题,但我也希望能够使用jhtmlarea添加表格。这就是我想出来的

$("#editor").htmlarea({
    toolbar: [
        ["html"],
        ["bold","italic","underline","strikeThrough","|","subscript","superscript"],
        ["orderedList","unorderedList"],
        ["indent","outdent"],
        ["link","unlink","|","horizontalrule"],
        ["cut","copy","paste"],
        [{
            css: 'jhtml-table',
            text: 'Insert Table',
            action: function(btn) {
                var t = this, li = btn.closest('li');
                var trtd = Array(11).join('<tr>'+Array(11).join('<td></td>')+'</tr>');
                var tbl = $('<table tabindex="0"><tbody>' + trtd + '</tbody><tfoot><tr><td colspan="10" style="color:#888;text-align:center;">&nbsp;</td></tr></tfoot></table>')
                    .css({position:'absolute', background:'#fff', border:'#bbb 1px solid', outline:'0 none'})
                    .appendTo(li)
                    .focus().blur(function(e){ tbl.remove(); });
                tbl.find('tbody td').css({border:'#bbb 1px solid',height:'12px',width:'12px'})
                    .hover(function(e){
                        var td = $(this),
                            x = td.index()+1,
                            y = td.closest('tr').index()+1;
                        tbl.find('tfoot td').html(x + 'x' + y);
                        tbl.find('tbody tr').slice(0,y).each(function(i){
                            $(this).find('td').slice(0,x).css({background:'#ddd'});
                            $(this).find('td').slice(x).css({background:'none'});
                        });
                        tbl.find('tbody tr').slice(y).each(function(i){
                            $(this).find('td').css({background:'none'});
                        })
                    })
                    .click(function(e){
                        var td = $(this),
                            x = td.index()+2,
                            y = td.closest('tr').index()+2;
                        t.pasteHTML('<table class="display-table"><tbody>' + Array(y).join('<tr>'+Array(x).join('<td>&nbsp;</td>')+'</tr>') + '</tbody></table>');
                        tbl.remove();
                    });

            }
        }]
    ],
    css: "css/jHtmlArea.editor.css"
});

我还没有完成任何跨浏览器测试(它可以在Chrome中运行),而且非常简单,但它提供了一种快速放入html表的方法。