Ueditor中代碼的高亮和背景在前端頁面的實現


  首先廢話就不多說,這個富文本編輯器的下載和js等基本文件的導入略。

  我的最終目標是這樣的,我們在頁面中的富文本框中輸入代碼,希望它能夠被后台接受、存入數據庫,當通過服務器將這些代碼再一次顯示在前台的頁面上的時候,我們希望所呈現的是如下的情況:

    

  就是說需要對代碼的背景和高亮的部分的樣式也進行保存。我的解決過程是這樣的(假設在demo.html中進行輸入,在demo.php中進行處理和呈現):

  1. 首先在網上查找相關信息,發現需要第三方插件,而這第三方插件就在我們的ueditor的下載包中,ueditor/third-party中便是。那么需要在demo.html中引入的就是

<script type="text/javascript" src="./Public/editor/third-party/SyntaxHighlighter/shCore.js"></script>
<link rel="stylesheet" type="text/css" href="./Public/editor/third-party/SyntaxHighlighter/shCoreDefault.css">
<script>SyntaxHighlighter.all();</script>

    路徑是我當前使用的路徑,換成自己的就好。

    另外有人說需要在editor下的ueditor.config.js中添加

      ,highlightJsUrl:URL + "third-party/SyntaxHighlighter/shCore.js"

           ,highlightCssUrl:URL + "third-party/SyntaxHighlighter/shCoreDefault.css"

    本人使用1.4.3.3版本,發現加入不加入這個配置都可以。

  2.這個時候我感覺可以得到我想要的效果了,於是在demo.html中使用富文本,在其中輸入了一行js代碼,提交到demo.php中。直接輸出,結果代碼和背景的樣式並沒有呈現出來。此時的我已經很煩躁,查了半天網上的資料都沒有找到想要的結果,因為幾乎所有的信息都是一模一樣的:出自一個人的手筆。。。。。最后我F12,發現最后在前台這些代碼文字呈現的html為:

<pre class="brush:js;toolbar:false">var&nbsp;name&nbsp;&nbsp;=&nbsp;'jyy';
var&nbsp;age&nbsp;=&nbsp;26;
function&nbsp;say(){
&nbsp;&nbsp;&nbsp;&nbsp;console.log('my&nbsp;name&nbsp;is:'&nbsp;+&nbsp;name&nbsp;+&nbsp;'&nbsp;and&nbsp;age:'&nbsp;+&nbsp;age);
}</pre>

  發現有很奇特的class,知道了可能我少了一道工序。沒錯,就是editor中的uparse。當時急於快速的搭建完成,於是沒有仔細的看文檔,知道了原來這些樣式是需要uparse來進行解析的,這樣才能在前台顯示出應有的樣式,uparse文件就是ueditor中的ueditor.parse.js,於是在demo.php中是這樣的代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="./Public/Admin/js/jquery.js"></script>
    <script src = './Public/editor/ueditor.parse.js'></script>
</head>
<body>
    <div id="con">
        <?php
            echo $_POST['content'];
        ?>
    </div>
    <script>
        $(function(){
            uParse('#con',{rootPath:'./Public/editor'});
        });
    </script>
</body>
</html>

  注意在引入相應的js文件后,需要使用uParse()方法,參數1是代碼文字的如元素的選擇器,參數2是editor相對於demo.php的路徑。

  3、最后,大功告成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM