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 能更新文字但不能更新图片,这是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章
为啥用在线编辑器输入的文字,显示出来的时候不能自动换行,而正常的文本框输入的就能自动换行。特别是