我正在尝试用PHP创建一个WYSIWYG编辑器。到目前为止,我得到了这个(我是新的顺便说一句):
HTML:
<form action="" method="POST">
<select name="fontSize" onchange="this.form.submit();">
<option>Font Size</option>
<option value="14px">14px</option>
<option value="24px">24px</option>
<option value="34px">34px</option>
</select>
</form>
<form action="" method="POST">
<textarea name="bodyText" style="width:500px;height:200px;font-size:<?php echo $fontSize; ?>"></textarea>
</form>
PHP:
<?php
$fontSize = $_POST['fontSize'];
switch($fontSize)
{
case "14px":
$fontSize = "14px";
break;
case "24px":
$fontSize = "24px";
break;
case "34px":
$fontSize = "34px";
break;
default:
$fontSize = "12px";
}
?>
问题是,当我从下拉菜单中选择一个新的字体大小时,整个文本区域的字体大小会发生变化,而我希望能够突出显示特定的单词或字母,并且只有该变化的字体大小而不是整个文本区域。如何解决这个问题?
答案 0 :(得分:5)
你可以(理论上)这样做,但是必须使用它的用户会对它不满意。问题是,每次按下一个按钮,页面都会刷新。这意味着表单的内容被发送到服务器,在那里修改并发回。
仅用于更改字体,响应时间太长。使用此编辑器的用户将无法正常工作。
获得的方法确实是使用JS WYSIWYG编辑器来处理客户端(其他答案链接到的那些)的所有格式等。
特别是您要求的内容,即仅更改突出显示的文字,无法解决。您可以通过发送两个附加字段来执行此操作,这些字段将起始端保留为突出显示文本的结束点。这些必须通过JS更新。
没有JS,你无法做到这一点。如前所述,文本在服务器端进行了修改。您无法通过使用文本来弄清楚用户正在做什么。
帮自己一个忙,不要尝试这样做。这真的不值得努力。
答案 1 :(得分:0)
请遵守DRY原则(不要重复自己)并选择许多Javascript WYSIWYG编辑器中的一个,如http://tinymce.moxiecode.com/。
相信我,人们在这些方面投入了大量的工作,你真的不想自己做。
再见
答案 2 :(得分:0)
同意,我们使用TinyMCE,它非常强大。查看http://tinymce.moxiecode.com/examples/full.php以查看其拥有的所有功能。示例页面的页脚显示了一系列用于特定目的的按钮更少的配置。
让它以你想要的方式运行肯定需要一些耐心,但最终它比我见过的其他所有东西都更好。 FileManager和ImageManager插件不是免费的,但是当你购买它们并且工作得很好时它们仍然是开源的。