在选择的任一侧添加html /任何标签 - Javascript

时间:2012-07-21 01:57:27

标签: javascript html

将HTML /任何标签添加到选择的任一侧 - Javascript

问题:

在我的PHP / html文件中创建textarea框后,我希望添加更多功能,并决定制作一个可以使用格式的textarea,例如

<textarea>
This is text that was inserted. <b>this text was selected and applied a style
via a button<b>
</textarea>

标签是什么并不重要(由于PHP脚本在接收$_POST数据时会自动应用带有标签的正确标签作为样式ID。不相关

问题

  • 如何使用javascript创建此功能?
  • 是否有任何可能有用的链接?
  • 如果有信息,可以解释一下吗?

编辑:其他关闭示例但不完全是stackoverflow的编辑器并注意到我不想使用第三方脚本,这对我来说是一个学习过程。 插入文本中的标记将保存到数据库中,然后在请求页面时,PHP将使用样式ID替换标记。如果有涉及第三方脚本的工作,请建议

对于谷歌搜索中的反研究怀疑论者来说,很少有人发现它是有道理的并且有以前的SOF研究:
- https://stackoverflow.com/questions/8752123/how-to-make-an-online-html-editor
- Adding tags to selection

先谢谢

3 个答案:

答案 0 :(得分:0)

除了texarea中的基本格式之外,你不能做任何事情。如果您想要复杂的格式,请查看将div的contentEditable属性设置为true。或者你可以制作一个wysisyg编辑器,但这是一个很大的项目。我强烈建议在此使用第三方代码。

答案 1 :(得分:0)

我建议您使用iframe来实现WYSIWYG效果。 iframe中有一个名为designMode

的媒体资源

请参阅此处了解更多
https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla

还有一个轻量级的例子,你可能想看看:
http://code.google.com/p/rte-light/source/browse/trunk/jquery.rte.js

答案 2 :(得分:0)

<textarea>元素不能包含特殊标记,只能包含值。您不能在textarea中应用任何样式。

您需要做的是伪造文本框通常会做的所有事情,包括绘制光标。正如hackattack所说,这是很多的工作。

如果你抓住jQuery并开始探索,你可以做很多事情。在那里放一个带有ID的<div>标签,以便轻松开始黑客攻击。

我从未亲自制作过,但它有很多。 HTML5的contentEditable可能会让你在那里获得很好的一部分:http://html5demos.com/contenteditable/

如果要将此数据传回服务器,则需要获取容器的innerHTML,并在提交表单时将其打入隐藏的输入中。

如果您只是乱搞,可以查看以下其他一些内容:

编辑:我认为完全被误解了

如果你不是在寻找一个富文本编辑器,并且只想要一些代码的辅助按钮,那么chooseStart和selectionEnd就是你所追求的。我不知道浏览器的支持是什么,但它在Chrome中有效: http://jsfiddle.net/5yXsd/