【问题标题】:Post HTML Textarea Or ContentEditable Div or Something Else.发布 HTML Textarea 或 ContentEditable Div 或其他内容。
【发布时间】:2014-01-18 08:11:36
【问题描述】:

TEXTAREA 可以发布 HTML,但我们必须在其中写入 HTML,而用户不知道 html 并且 Textarea 不允许使用快捷键如 Ctrl + B 来表示粗体。

div 元素的

CONTENTEDITABLE="True" 属性。 它允许编写 HTML 代码和快捷键或从其他资源复制的任何类型的 HTML。

我的情况是我只想要粗体、斜体、下划线和 Enter 键。如果我使用 textarea,它不允许我使用短键来编辑 html,如果我使用 contenteditable,它会为我提供这些功能以及我不允许用户发布的许多其他功能。

我不打算使用 TinyMC BBCode 等。用于粗体、斜体、下划线和回车等简单功能。

我应该怎么做?

【问题讨论】:

    标签: javascript jquery html asp.net post


    【解决方案1】:

    你需要 Javascript - Can div with contenteditable=true be passed through form?

    smdrager 代码来自上面的链接。

    <script type="text/javascript">
        function getContent(){
            document.getElementById("my-textarea").value = document.getElementById("my-content").innerHTML;
        }
    </script>
    
    
    <div id="my-content" contenteditable="true"><a href="page.html">Some</a> Text</div>
    
    <form id="form" action="some-page.php" onsubmit="return getContent()">
        <textarea id="my-textarea" style="display:none"></textarea>
        <input type="submit" />
    </form>
    

    只允许一些标签使用这个:http://phpjs.org/functions/strip_tags/

    【讨论】:

    • 是的,我做到了,但是您将放在 div 上的所有内容都将在 textarea 中获得。我只想允许简单的功能,仅此而已。感谢您的回复。
    • 这会很有帮助:phpjs.org/functions/strip_tags 然后将 textarea 值设置为 strip_tags(document.getElementById("my-content").innerHTML,'&lt;b&gt;&lt;i&gt;&lt;u&gt;') //或任何你想要的标签
    • 嗯,它看起来更好,我认为这是剥离标签的唯一解决方案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2012-08-25
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多