簡體   English   中英

CKEditor 4 將 html div 標簽更改為 p 標簽

[英]CKEditor 4 changes html div tag to p tag

我想知道如何使用 CKEditor 4 reactjs 顯示 html。 它顯示編輯器,但內聯樣式被刪除,所有 div 標簽都更改為 P 標簽。

如何在不將 div 更改為 P 標記的情況下按原樣顯示 html

import React from "react";
import CKEditor from 'ckeditor4-react';


class Editor extends React.PureComponent{

    constructor(props) {
    super(props);
    this.state = {
      config: {
        extraAllowedContent: 'div(*)',
        allowedContent: true
      }
     emailbody: `
        <!DOCTYPE html>
        <html lang="en">
        <head>
        <title></title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        </head>
        <body  style="background-color: #DAD5CE; font-family:'browntt-regular', Verdana, Geneva, Tahoma, sans-serif">
         <div class="content-box" style="display: block; align-items: center; justify-content: center; margin:25px 0">
                    <div style="height:100%; text-align: center;display:block; ">
                        <div style="font-weight: normal; font-size: 24pt; color: #000">order confirmation</div>
                        <div class="orderdate" style="font-size: 12pt; color: #51545D">order date:
                             <span style="color: #B39137;">${orderdate!''} </span>
                        </div>
                    </div>
                </div>
        </body>
        </html>`
    }

handleChange = value => {
 this.setState({ emailbody: value });
}
    render(){
       <div>
         <CKEditor
              data={this.state.emailbody}
              onChange={this.handleChange}
              config={this.config}
          />
          </div>
    }

}

要解決此問題,請使用“react-ckeditor-component”而不是“ckeditor4-react”,如下所示:

import CKEditor from 'react-ckeditor-component';

class Editor extends React.PureComponent{

    constructor(props) {
    super(props);
    this.state = {
     emailbody: `
        <!DOCTYPE html>
        <html lang="en">
        <head>
        <title></title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        </head>
        <body  style="background-color: #DAD5CE; font-family:'browntt-regular', Verdana, Geneva, Tahoma, sans-serif">
         <div class="content-box" style="display: block; align-items: center; justify-content: center; margin:25px 0">
                    <div style="height:100%; text-align: center;display:block; ">
                        <div style="font-weight: normal; font-size: 24pt; color: #000">order confirmation</div>
                        <div class="orderdate" style="font-size: 12pt; color: #51545D">order date:
                             <span style="color: #B39137;">${orderdate!''} </span>
                        </div>
                    </div>
                </div>
        </body>
        </html>`
    }

handleChange = (event) => {
  this.setState({
    emailbody: event.target.value
  });
};
    render(){
       <div>
         <CKEditor
              content={this.state.content}
              config={{
                 extraAllowedContent: 'div(*)',
                 allowedContent: true
              }}
               events={{
                  change: this.handleChange
              }}
          />
          </div>
    }

}

浪費太多時間后,我得到了上述問題的解決方案,請欣賞

如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div>

[英]How to access a `<div>` tag inside a `<p>` tag?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 CKEditor setData 添加P標簽 CKeditor刪除除div之外的所有html標記,粘貼事件上的span 更改默認大小 <p> CKEditor中的標簽 帶有關閉html標記的ckeditor allowedExtraContent 替換ckeditor中的內容標簽html 如果我們在一個p標簽內放置一個div,Jquery html()方法不起作用? 如何在 html 標簽(如 p 或 div)中顯示來自 ajax 的數據 如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div> Safari Mac的ckeditor中的form標簽被p標簽替換 CKEditor:在粘貼上將多個p標簽轉換為單個p標簽
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM