2012-11-19 115 views
1

有沒有方法可以測量tinymce編輯器實例中的元素?我需要測量一個表的寬度和它的列,以便我可以找到表的相對列寬度,即使表中有內容,下面的代碼也會返回0。tinymce編輯器中的度量元素

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

回答

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; 
+0

屬性感謝這一點,但我得到以下錯誤: '錯誤創建框:TypeError:elem.getBoundingClientRect不是函數' elem確實包含表 – RMcLeod

+0

您使用的是哪種瀏覽器? – Thariama

+0

Mac OS X上的Firefox 16.0.2 – RMcLeod