在具有灵活但最大高度的div中显示tinymce内容

时间:2011-08-04 16:40:16

标签: html asp.net-mvc tinymce

当使用像tinymce这样的编辑器时,我如何限制用户输入的文本的高度,这样它就不会在网页上使用比我想要的空间更多的空间?

我想要一些建议:

在编辑器中 用户在tinymce编辑器中输入文本,他可以将文本设置为font-size,例如80px,这将占用比普通字母更多的空间。因此,我所关心的文本数量并不是总数的高度。

在网页中  我不想在页面上给出超过200px的文本。但如果他们只输入一行文字小字体,我不想显示200px的空间。所以高度必须灵活,但最大限度。

我知道这不是确切的科学,但这里的目标是防止用户弄乱页面。

1 个答案:

答案 0 :(得分:0)

为了解决类似的问题,我编写了以下函数(放在自己的tinymce插件中)。你需要为最大的情况添加一个变量,并且可能稍微调整一下,但我希望这段代码会让你走向正确的方向

    // this function will adjust the editors iframe height to fit in the editors content perfectly
    resizeIframe: function(editor) {
        var frameid = frameid ? frameid :editor.id+'_ifr';
        var currentfr=document.getElementById(frameid);

        if (currentfr && !window.opera){
            currentfr.style.display="block";
            if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) { //ns6 syntax
                currentfr.height = currentfr.contentDocument.body.offsetHeight + 26;
            }
            else if (currentfr.Document && currentfr.Document.body.scrollHeight) { //ie5+ syntax
                    currentfr.height = currentfr.Document.body.scrollHeight;
            }
            styles = currentfr.getAttribute('style').split(';');
            for (var i=0; i<styles.length; i++) {
                if ( styles[i].search('height:') ==1 ){
                    styles.splice(i,1);
                    break;
                }
            };
            currentfr.setAttribute('style', styles.join(';'));
        }
    },
相关问题