2016-07-24 8 views
1

編集:私は今、仕事のjsfiddleを含めました - 投稿の下部に行ってください。TinyMCEエディタのツールバーの高さが間違っていますか?

According to the TinyMCE docs, the height property of the editor

だけで編集可能な領域の高さを設定します。メニューバー、ツールバー、またはステータスバーに必要な領域は、 には含まれません。

私のエディタにはツールバーしかありません。私は現在、エディタ全体の正確な高さを設定できるようにツールバーの高さを導出しようとしています。

私の問題は、私は、エディタのツールバーの高さを導出しようとすると、それは間違っていることです:

私のDOM構造は次のようになります。テキストエリアのdivが最大化できるか否かのいずれか

<div id = "outer"> 
    <div id = "textArea" + dynamically created unique editor id></div> 
</div> 

最大化されていない: 最大化



最大化されていない場合は、私は "#outer" + ".mce-ツールバーのclientHeightプロパティことクロームデベロッパーツールで見ることができます-grp.mce-container.mce-panel.mce-stack-layout-item.mce-first "は64であり、最大化されている場合は34です。

しかし、私は私のエディタのセットアップコールバックにコードを介して、この値を取得しようとすると、それは常に何が起こっている326

として出てきますか?

tinymce.init({ 
    selector: "#textArea" + uniqueEditorId, 
    menubar: false, 
    statusbar: false, 
    browser_spellcheck: true, 
    contextmenu: false, 
    plugins: "textcolor link", 
    font_formats: "Sans Serif = arial, helvetica, sans-serif;Serif = times new roman, serif;Fixed Width = monospace;Wide = arial black, sans-serif;Narrow = arial narrow, sans-serif;Comic Sans MS = comic sans ms, sans-serif;Garamond = garamond, serif;Georgia = georgia, serif;Tahoma = tahoma, sans-serif;Trebuchet MS = trebuchet ms, sans-serif;Verdana = verdana, sans-serif", 
    toolbar: "fontselect | fontsizeselect | bold italic underline | forecolor | numlist bullist | alignleft aligncenter alignright alignjustify | outdent indent | link unlink | undo redo", 

    width: textArea.clientWidth, 
    // I want to figure this out dynamically, rather than hard-coding it. 
    height: textArea.clientHeight - 64, 

    setup: function(editor) { 
     editor.on("init", function() { 
     var edToolbar = document.querySelector("#outer" + " .mce-toolbar-grp.mce-container.mce-panel.mce-stack-layout-item.mce-first"); 
     // Always 326 
     console.log("edToolbar.clientHeight: " + edToolbar.clientHeight); 
     }); 
    } 
}); 

Jsfiddle:上記Jsfiddle例でhttps://jsfiddle.net/80351/6o9j75d1/2/
、私はTinyMCEのエディタが、内側のdivとまったく同じ全体的な高さに高さにサイズを変更します。内部のサイズ変更を見て、エディタの初期化でセクションのコメントを外して、それが意味するものを見てください。

外側のdivの高さが変更されるたびにeditor.theme.resizeTo(getInnerWidth(), getInnerHeight());を使用しますが、サイズ変更された高さはほとんど間違っています。

+0

[jsfiddle](http://jsfiddle.net) – Dekel

+0

私はちょうど私のjsfiddleの説明で自分の投稿を編集しました。 – user5508297

+0

jsfiddleには錫のインスタンスがありません – Dekel

答えて

1

その場で高さを計算しようとするのではなく、複数のツールバーを使用してサイズを変更しないことに反対しますか?だからではなく、あなたの現在のツールバー属性の、それは次のようになります。私は前に似た何かを実装するために必要なまし

toolbar: "fontselect | fontsizeselect | bold italic underline | forecolor | numlist bullist", 
    "alignleft aligncenter alignright alignjustify | outdent indent | link unlink | undo redo" 

https://www.tinymce.com/docs/configure/editor-appearance/#usingmultipletoolbars

+0

あなたの返事をありがとう。私の問題の最も便利な解決策は、その場でツールバーの高さを引き出すことです。理論的には、それは難しいことではありません...! @Eddimull – user5508297

+0

"難しいはずはない"とTinyMCEを改変することは、同じ文章ではうまく収まらない。私が何かを理解できるかどうかを見てみましょう。 – Eddimull

+0

残念ながら、あなたはそれについて正しいかもしれないと思います!あなたが何かを理解してくれれば、ありがとう@Eddimullは私に教えてくれます。 – user5508297

0

。私にとっては、次のコードでは、働いていた:

function getInnerHeight() { 
    var inner = document.querySelector("#inner"); 
    return inner.clientHeight - document.getElementsByClassName("mce-toolbar-grp")[0].offsetHeight; 
} 

あなたはすでにそれを試みたことがありますか?

関連する問題