TINYMCE 长度: asp.net mvc

问题描述 投票:0回答:1

这是我的代码,用于检查tinymce contant的长度。

<script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            tinymce.init({
                selector: 'textarea',

                setup: function (ed) {
                    ed.on('keyup', function (e) {
                        var count = CountCharacters();
                        document.getElementById("character_count").innerHTML = "Characters: " + count;
                    });
                }
            });
        }
        function CountCharacters() {
            var body = tinymce.get("Body").getBody();
            var content = tinymce.trim(body.innerText || body.textContent);
            return content.length;
        };
        function ValidateCharacterLength() {
            var max = 4000;
            var count = CountCharacters();
            if (count > max) {
                alert("Maximum " + max + " characters allowed.")
                return false;
            }
            return;
        }
    </script>

它返回的长度没有(HTML标签),所以最大的大小是4000,但如果我把它的粗体,改变颜色,它是超过4000,所以不能存储在SQL中,我如何确定长度与HTML标签?

例如:这是粗体字的长度。请在此输入图片描述

但在SQL中,它的长度是:33。

我把代码改成如下所示

@model TinyEditorWithMVCApp.Models.Post


@{
    ViewBag.Title = "AddPost";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Add new Post</h2>


<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>TintMCE App</title>
    <script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            tinymce.init({
                selector: 'textarea',

                setup: function (ed) {
                    ed.on('keyup', function (e) {
                        var count = CountCharacters();
                        document.getElementById("character_count").innerHTML = "Characters: " + count;
                    });
                }
            });
        }
        function CountCharacters() {
    var content = tinymce.activeEditor.getContent({format: 'raw'});
     return content.length;
};
        function ValidateCharacterLength() {
            var max = 4000;
            var count = CountCharacters();
            if (count > max) {
                alert("Maximum " + max + " characters allowed.")
                return false;
            }
            return;
        }
    </script>
</head>
<body>
    <div>
        @using (Html.BeginForm("AddPost", "Home", FormMethod.Post))
        {
            <div>
                @Html.TextBoxFor(model => model.AuthorName)
            </div>

            <div>
                @Html.TextAreaFor(model => model.Body)
            </div>

            <div id="character_count">
            </div>
            <div>
                <input type="submit" value="Save Post" onclick="return ValidateCharacterLength();" />


            </div>

        }
    </div>
    <div id="character_count">
    </div>
</body>
</html>

我想,得到的结果是不正确的

它给我的字符8,即使它的(测试)必须是4,我不添加任何HTML标签。请在此输入图片描述

sql tinymce
1个回答
0
投票

根据 文件 您可以阅读原始内容

// Get the HTML contents of the currently active editor
console.debug(tinymce.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinymce.activeEditor.getContent({format: 'raw'});

// Get content of a specific editor:
tinymce.get('content id').getContent()

在你的情况下,我会尝试改变

function CountCharacters() {
    var content = tinymce.activeEditor.getContent({format: 'raw'});
     return content.length;
};

JSFiddle的例子。

  • 空编辑器--tinyMCE默认放在那里。<p><br data-mce-bogus="1"></p> 并给出长度为 30
  • example 作为输入,那么后面的html就是 <p>example</p> 和长度是 14
  • 大胆 example 作为输入,那么html就是

    例子

    和长度是 31

工作样本 JSFiddle.

© www.soinside.com 2019 - 2024. All rights reserved.