gpt4 book ai didi

javascript - 根据放入其中的内容调整 EpicEditor 的大小

转载 作者:可可西里 更新时间:2023-11-01 12:50:51 25 4
gpt4 key购买 nike

我在我的站点中使用 epiceditor,我正在使用服务器在页面上嵌入的 markdown 来填充它。目前,当 epiceditor 显示时,它的默认高度非常小,带有滚动条以处理查看整个内容。我可以手动设置 div 的高度,目前这是我能做的最好的(我已经将它设置为相当大的值:800 像素)。但是,我希望它的高度始终足以容纳没有滚动条的全部内容。本质上类似于溢出:可见。

这里是目前为止的相关部分

<html>
<head>
<script src="/assets/javascripts/epiceditor/js/epiceditor.min.js" type="text/javascript"></script>

<script id="postMarkdown" type="text/markdown" data-postId="1">
#Markdowns in here
...
</script>
<style>
#epiceditor{
height: 800px;
}
</style>
<script src="/assets/javascripts/thrown/posts/edit.js" type="text/javascript"></script>
</head>
<body>
<div id="epiceditor">
</div>
</body>
</html>

这里是 edit.js 源代码(它是从 coffescript 编译的)

$ ->
postMarkdown = $("#postMarkdown").first()

options =
basePath : '../../assets/javascripts/epiceditor'
editor = new EpicEditor(options).load()
postId = postMarkdown.data('postId')
markdown = postMarkdown.html()
editor.importFile('posts/'+postId,markdown);
editor.reflow();

我希望回流可以在插入内容后增加高度,但是没有这样的运气。但是,如果我调整 div 的大小并调用回流,它会正确调整大小。我检查了它创建的标记,希望我可以确定高度并调整其容器的大小并告诉它重排。然而,它似乎包含多个 iframe,乍一看我没想到这是一个快速的变化,或者甚至可能。但是,我欢迎任何解决方案。

我还了解到,如果我将其容器调整到合适的高度,epiceditor 将填充适当的空间。但是我希望它的高度是渲染所需的高度,这样编辑器就可以在网站设计的其余部分占据正确的空间。因此,如果我可以在 EpicEditor 中设置一些东西让它不以它现在的方式溢出,或者在它加载后确定高度的方法,我就设置好了。感谢您的帮助。

最佳答案

我是制作 EpicEditor 的人,这里有一个解决方案:

var editor = new EpicEditor({
basePath: 'https://raw.github.com/OscarGodson/EpicEditor/develop/epiceditor'
});

var updateEditorHeight = function () {
editorHeight = $(editor.getElement('editor').body).height();
// +20 for padding
$('#epiceditor').height(editorHeight + 20);
editor.reflow();
}

editor.load(function (){
updateEditorHeight();
});

editor.on('update', function () {
// You should probably put a check here so it doesn't
// run for every update, but just on update, AND if the
// element's height is different then before.
updateEditorHeight();
});

此外,在 CSS 中,我向 epiceditor 的包装器添加了一个 overflow: hidden,这样滚动条就不会随着它的增长而出现。

演示:http://jsbin.com/eyidey/1/
演示代码:http://jsbin.com/eyidey/1/edit

更新

从 EpicEditor 0.2.2 开始,自动增长是内置的。只需打开 autogrow 选项即可。

关于javascript - 根据放入其中的内容调整 EpicEditor 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com