1
有沒有方法可以測量tinymce編輯器實例中的元素?我需要測量一個表的寬度和它的列,以便我可以找到表的相對列寬度,即使表中有內容,下面的代碼也會返回0。tinymce編輯器中的度量元素
var doc = tinymce.get('text_box_desc0').getDoc();
var width = $('table', doc).width();
alert(width);
有沒有方法可以測量tinymce編輯器實例中的元素?我需要測量一個表的寬度和它的列,以便我可以找到表的相對列寬度,即使表中有內容,下面的代碼也會返回0。tinymce編輯器中的度量元素
var doc = tinymce.get('text_box_desc0').getDoc();
var width = $('table', doc).width();
alert(width);
是的,這是可能的。
下面是如何使用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;
屬性感謝這一點,但我得到以下錯誤: '錯誤創建框:TypeError:elem.getBoundingClientRect不是函數' elem確實包含表 – RMcLeod
您使用的是哪種瀏覽器? – Thariama
Mac OS X上的Firefox 16.0.2 – RMcLeod