在tinymce编辑器中测量元素

时间:2012-11-19 15:19:16

标签: jquery tinymce

有没有办法测量一个tinymce编辑器实例中的元素?我需要测量一个表的宽度和它的列,以便我可以找到表的相对列宽,下面的代码返回0,即使表中有内容。

var doc = tinymce.get('text_box_desc0').getDoc();
var width = $('table', doc).width();
alert(width); 

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。

以下是如何使用getBoundingClientRect()获取某些信息的示例

        var ed = tinymce.get('text_box_desc0');

        // this will take the first table in the editor, you may define another selector to get 'your' table element 
        var elem = $(ed.getBody()).find('table:first').get(0);
        try {
            box = elem.getBoundingClientRect();
        } 
        catch(e) 
        {
            console.log('error creating box: ' + e);
        }
        // various info
        var doc = ed.getDoc(),
            docElem = doc.documentElement,
            body = ed.getBody(),
            win = ed.getWin(),
            clientTop  = docElem.clientTop  || body.clientTop  || 0,
            clientLeft = docElem.clientLeft || body.clientLeft || 0,
            scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
            scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
            top  = box.top  + scrollTop  - clientTop,
            left = box.left + scrollLeft - clientLeft;

您正在寻找的是

box.width;

但还有更多属性,如

box.height;