【问题标题】:tinymce get HTML code when postbacktinymce 在回发时获取 HTML 代码
【发布时间】:2011-04-12 13:45:41
【问题描述】:

我的 asp.net 页面中有 tinymce -control 作为 WYSIWYG-Editior。

当我有例如粗体文本,回发后显示为

 "<p><strong>asd</strong></p>" 

在文本区域而不是粗体文本中。

有什么想法吗?

我的代码:

    <script type="text/javascript" src="../scripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
    tinyMCE.init({
        mode: "textareas",
        theme: "simple",
        encoding: "xml"
    });
</script>


<textarea runat="server" id="txtareaTextActivity" name="content" cols="48" rows="5">  </textarea>

【问题讨论】:

标签: asp.net tinymce postback


【解决方案1】:

我也遇到了同样的问题。但是通过每次在 c# 中的页面加载中解码 textarea 文本来修复它,如下所示:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
          // Some stuff
        }
        txtDescription.Text = HttpUtility.HtmlDecode(txtDescription.Text);
    }

我在 tinymce 初始化函数中使用encoding: "xml"。 .net 版4.5.1.

希望对某人有所帮助。

【讨论】:

    【解决方案2】:

    您可以使用此代码来解决您的问题:

    TextAreaID.Text = Server.HtmlDecode("&lt;p&gt;hello&lt;/p&gt;");

    我在这篇文章中找到了它:https://stackoverflow.com/a/8029637/1509986

    如果您遇到一些安全错误,您可以使用

    validateRequest="false"
    

    在您的页面中。

    【讨论】:

      【解决方案3】:

      当编辑器控件放置在更新面板中时会发生这种情况。 尝试删除更新面板并检查。它对我有用。

      【讨论】:

      • 你太棒了。感谢您的大力帮助。它实际上对我有用。它确实解决了我的很多代码问题。最终你是我的神。谢谢。
      【解决方案4】:

      经过数小时的搜索,没有办法,直到现在这是一个未解决的错误。 所以我不得不切换到另一个所见即所得的编辑器。

      【讨论】:

        【解决方案5】:

        尝试将您的 js 代码传递给 ScriptManager。为我工作。

        string script = "alert('something')";
        ScriptManager.RegisterClientScriptBlock(UpdatePanelSend, typeof(UpdatePanel), "jscript", script, true);
        

        http://snippets.dzone.com/posts/show/6725

        希望这会有所帮助。

        【讨论】:

          【解决方案6】:

          第 1 步: 在 TinyMCE 配置中使用

          encoding: "xml",
          

          第 2 步:在 Java 脚本中 初始化 TinyMCE 后使用此代码,其中 'textarea.RichText' 是文本区域的类选择器

          tinymce.init(TMCEconfig);
          
           // Fix Html Decodeing
              $('textarea.RichText').each(function () {
                      var $this = $(this);
                      var x = $this.text();
                      $this.html(x)
              });
          

          第三步:在Server代码中,设置文本区域的值时,先解码文本 例如在 ASP.net 中使用

          textarea.text = HttpUtility.HtmlDecode(Source)
          

          【讨论】:

            【解决方案7】:

            我有同样的问题。要修复它,您必须为元素创建回发添加脚本代码。我的按钮创建回帖,我添加它 OnClientClick() :

            <asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()"
                                        runat="server">save</asp:LinkButton>
            

            脚本是:

            function dotim() {
                   tinyMCE.triggerSave();
                  } // this is my attempt at a fix
            

            【讨论】:

              【解决方案8】:

              更改初始化函数并将编码设置为空字符串。

              <script type="text/javascript">
                  tinyMCE.init({
                      mode: "textareas",
                      theme: "simple",
                      encoding: ""
                  });
              </script>
              

              这是默认设置,适用于我的情况。请参阅此页面上的文档http://www.tinymce.com/wiki.php/Configuration3x:encoding

              【讨论】:

              • 将编码设置为“”会导致错误:“从客户端检测到具有潜在危险的 Request.Form 值”
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-12-25
              • 1970-01-01
              相关资源
              最近更新 更多