TinyMCE 能更新文字但不能更新图片,这是为啥呢?

Posted

技术标签:

【中文标题】TinyMCE 能更新文字但不能更新图片,这是为啥呢?【英文标题】:TinyMCE is able to update texts but not images, why is this?TinyMCE 能更新文字但不能更新图片,这是为什么呢? 【发布时间】:2011-08-14 21:36:26 【问题描述】:

我在我的一个网站上使用 TinyMCE,由于我愚蠢地决定使用这个编辑器,我已经到了想要删除整个网站的地步。

当我登录时,一切都像魅力一样运作(除了 TinyMCE 有时过着自己的生活),但当我想更新/替换图像时,它根本没有做任何事情。在 TinyMCE 预览编辑器中,一切看起来都很棒,但是当我将它保存到数据库时,什么都没有发生。

有人知道这是什么吗?

提前谢谢你

编辑

这是我在编辑时 TinyMCE 使用的代码:

<?php
if($isadmin) ?>
<form method="post" action="dump.php?id=2">
<!-- Gets replaced with TinyMCE, remember html in a textarea should be encoded -->
<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
<?php  ?>
<?php echo $row[1]; ?>
<?php
if($isadmin) ?>

</textarea>

<br />

<input type="submit" name="save" value="Submit" />
<input type="reset" name="reset" value="Reset" />
</form>
<?php  ?>

这是 TinyMCE 用来运行的代码:

<?php
session_start();
ob_flush ();

require_once ("include/config.php");


if(isset($_SESSION['admin_user']) && isset($_SESSION['admin_password']))
    $isadmin = true;
else
    $isadmin = false;


$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Failed to connect");       

mysql_select_db($dbname) or die("cant access");
// id=4 är sidan 4
$result = mysql_query("SELECT * FROM content WHERE id=2") or die("couldn't select        data");
$row = mysql_fetch_row($result);


?>

<?php
if($isadmin) ?>
<!-- TinyMCE -->
<script type="text/javascript" src="admin/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init(
    // General options
    mode : "textareas",
    theme : "advanced",
    plugins :     "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

    // Theme options
    theme_advanced_buttons1 :     "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
    theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
    theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
    theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true,

    // Skin options
    skin : "o2k7",
    skin_variant : "silver",

    // Example content CSS (should be your site CSS)
    content_css : "css/example.css",

    // Drop lists for link/image/media/template dialogs
    template_external_list_url : "js/template_list.js",
    external_link_list_url : "js/link_list.js",
    external_image_list_url : "js/image_list.js",
    media_external_list_url : "js/media_list.js",

    // Replace values for the template plugin
    template_replace_values : 
            username : "Some User",
            staffid : "991234"
    
);
</script>

<?php

?>

【问题讨论】:

你确定你没有在你的服务器端脚本上做任何类型的过滤吗?您可以粘贴一些您的 tinymce 编辑器发布的 $_POST 数据吗? 太模糊需要代码...必须...看到....代码 出错的往往是实现而不是软件本身。 TinyMCE 是一个很棒的工具,我已经使用了很多年了。 “什么都没发生”,你确定吗?没有?你能看到源或数据库中的img代码,但图像本身没有出现吗? @Cristian 我认为没有任何过滤器,我使用的是原始脚本,我认为 :) @mcgrailm 现在添加了 =) 抱歉。 @Madmartigan 我真的不能同意这太棒了,我在用它编辑简单文本时发现了很多错误。也许我用错了,但我希望运行这个网站的人能够编辑内容,他们不知道 html 或编码。 【参考方案1】:

我遇到了类似的问题。发生的事情是 Tiny 将图像路径转换为相对路径。我所做的是在 Tiny 配置的常规选项中禁用此选项:

relative_urls: false,
remove_script_host: false,
convert_urls: false

【讨论】:

感谢您的回答。不幸的是,这对我不起作用:(当我在编辑模式下替换它时,我会显示图像,一切看起来都很完美。但是当我应用更改时,它会将图像改回来。虽然文本更新很好.. 如果我在这个答案上按“向下箭头”这对我不起作用,会不会是一种侮辱? 以后有人可能会发现这个问题,他可能会找到一个有用的答案,而您没有找到。 When should you downvote?【参考方案2】:

您是否尝试在文档准备好后初始化 tinyMCE?

$(function() 
   tinyMCE.init(
   ...
   );
);

【讨论】:

以上是关于TinyMCE 能更新文字但不能更新图片,这是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

tinymce原装插件阅读-link

为啥有的图片能复制不能粘贴

为啥用在线编辑器输入的文字,显示出来的时候不能自动换行,而正常的文本框输入的就能自动换行。特别是

测试在 UI 中更新但在控制台中没有更新,为啥?谁能告诉为啥控制台不更新?

为啥我不能更新 laravel 中的字段?

为啥不能更新已经被 MySQL 中另一个事务更新的行