gpt4 book ai didi

TinyMCE + jbimages + autoresize 不调整大小

转载 作者:行者123 更新时间:2023-12-01 15:43:05 25 4
gpt4 key购买 nike

我使用带有 jbimages 插件的 TinyMCE 上传图片。我还激活了 autoresize 插件,这样当添加/删除内容时,编辑器会自动扩展和收缩。

这一切都很好,除非我上传的图像大于编辑器视口(viewport)。在这种情况下,编辑器不会展开。

我初始化tinyMCE的代码如下:

tinyMCE.init({
menubar: false,
statusbar: false,
selector: "textarea",
plugins: [
"advlist autolink autoresize lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste jbimages textcolor"
],
toolbar: "jbimages",
relative_urls: false
});

我的标记如下:

<div class="control-group" id="cgroup-order[message]">
<label class="control-label required" id="label-order[message]" for="order[message]">Message to send:</label>
<div class="controls" id="controls-order[message]">
<textarea name="order[message]" class="pull-left span3 message" id="order[message]"></textarea>
</div>

当 jbimages 插入图像时,似乎没有执行 mceAutoResize 命令。我已经尝试将类似这样的内容添加到初始化参数中:

    setup: function(editor) {
editor.on('SetContent', function(e) {
editor.execCommand('mceAutoResize');
});
}

但这并没有多大帮助。有什么想法可以使它正常工作吗?

编辑:当我在插入图像后按下一个键或按下鼠标按钮时,编辑器将调整大小,但这不会自动发生。

编辑 2:好的,所以我至少现在知道这种行为的原因了。 autoresize 插件会响应编辑器的 SetContent 事件。此时插入大图像时,浏览器可能会或可能不会完成渲染图像。如果未完成图像渲染,自动调整大小计算的新高度仍然是旧高度,原因很明显。

我已经尝试了很多不同的事情,比如捕捉 mce 的 iframe 的加载事件,但这只会在页面最初加载时触发。

我最终以一种非常肮脏的方式解决了它,使用 1 秒超时给浏览器更多时间来渲染图像。当然,这充其量只是胶带解决方案,因为它可能不适用于速度较慢的客户端。如果有人有更好的解决方案,请告诉我。

我的代码现在看起来像这样:

    tinyMCE.init({
menubar: false,
statusbar: false,
selector: "textarea",
plugins: [
"advlist autolink autoresize lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste jbimages textcolor"
],
//toolbar: "insertfile undo redo | styleselect | forecolor | bold italic | alignleft aligncenter alignright alignjustify | link | jbimages",
toolbar: "jbimages",
relative_urls: false,
autoresize_min_height: 200,
//autoresize_max_height: 800,
setup: function(editor) {
editor.on('SetContent', function(e) {
if (e.content.indexOf('<img ') == 0)
{
setTimeout(function(){ tinymce.activeEditor.execCommand('mceAutoResize'); }, 1000);
}
})
}
});

最佳答案

我有一个想法,但我的问题没有这个,但它已经解决了很多图像问题。

ini_set("memory_limit","120M");

它必须放在jbimages\ci\system\libraries\Upload.php 文件中

在这一行之上:

@copy($this->file_temp, $this->upload_path.$this->file_name);

它可能会解决您的问题。

关于TinyMCE + jbimages + autoresize 不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23233889/

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