2011-12-01 4 views

답변

2

이 시도 :

편집기 창에 상대

:

// From http://stackoverflow.com/questions/442404/dynamically-retrieve-html-element-x-y-position-with-javascript 
function getOffset(el) { 
    var _x = 0; 
    var _y = 0; 
    while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { 
     _x += el.offsetLeft - el.scrollLeft; 
     _y += el.offsetTop - el.scrollTop; 
     el = el.offsetParent; 
    } 
    return { y: _y, x: _x }; 
} 

tinyMCE.init({ 
    // ... 
    setup: function(ed) { 
     ed.onNodeChange.add(function(ed, cm, e) { 
      var coords = tinymce.DOM.getPos(e), 
       ed_coords = getOffset(ed.getContentAreaContainer()), 
       x, y; 

      x = coords.x + ed_coords.x; 
      y = coords.y + ed_coords.y; 
     }); 
    } 
}); 
+0

감사 : 편집기를 보유하고 몸에

ed.onNodeChange.add(function(ed, cm, e) { console.log(tinymce.DOM.getPos(e)); /* Ex: * Object * x: 8 * y: 30 */ }); 

상대. 그러나 편집기를 기준으로 좌표를 반환합니다. 내 자신의 플로팅 div를 그릴 때 절대적인 것이 필요합니다. 또는 나는 무엇인가 놓치고 있냐? – zerkms

+0

글쎄, 일을 단순하게하기 위해서 항상 편집기 창 좌표를 가져 와서'tinymce.DOM.getPos()'의 결과에 추가 할 수 있습니다. http://simshaun.com/tinymce/blockcoords/에서 나의 예를 보자. – simshaun

+0

그래, 그것도있어. 도움을 주셔서 감사합니다 – zerkms

관련 문제