亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 軟件應用 > 正文

FCKEditor SyntaxHighlighter整合實現代碼高亮顯示

2024-09-06 19:16:35
字體:
來源:轉載
供稿:網友

因此上網查了許多資料,沒有說怎么做的,都是自己改好一個包上傳。我研究了一個這些整合好的例子,粗略說一說,對以后開發其它FCKeditor插件也有好處。
為方便大家使用,武林網特提供兩個已經做成插件的版本。下載地址
第一步:在FCKeditor的路徑中找到“editor/plugins/”,在其中創建“highlighter”文件夾。

第二步:將“dp.SyntaxHighlighter/Scripts”文件夾復制到此文件夾中,所有的js文件和一個flash文件也要一通復制過來。

第三步:在“highlighter/”創建“lang”文件夾,在其中新建“zh-cn.js”文件,內容如下――

復制代碼 代碼如下:

FCKLang.CodeBtn = '插入高亮代碼' ;
FCKLang.CodeArea = '代碼';
FCKLang.CodeDlgTitle = '插入高亮代碼' ;
FCKLang.CodeDlgName = '語言' ;
FCKLang.CodeErrNoName = '請輸入代碼' ;


第四步:在“highlighter/”創建“fckplugin.js”,內容如下――此文件內容也可以參考其他plugins目錄下的同名文件。
復制代碼 代碼如下:

// Register the related commands.
//FCKCommands.RegisterCommand( 'HighLighter', new FCKDialogCommand("HighLighter",FCKLang.DlgHighLighterTitle,FCKConfig.Plugins.Items['highlighter'].Path + 'highlighter.html', 540, 540 ) ) ;
FCKCommands.RegisterCommand( 'HighLighter', new FCKDialogCommand("HighLighter",FCKLang['CodeDlgTitle'],FCKConfig.PluginsPath + 'highlighter/highlighter.html', 540, 500 ) ) ;
// Create the "highlighter" toolbar button.
var oHighLighterItem        = new FCKToolbarButton( 'HighLighter', FCKLang['CodeBtn'] ) ;
oHighLighterItem.IconPath    = FCKConfig.PluginsPath + 'highlighter/highlighter.gif' ;
FCKToolbarItems.RegisterItem( 'HighLighter', oHighLighterItem );// 'HighLighter' is the name used in the Toolbar config.
var FCKHighLighter = new Object();
var CSS_PATH      = FCKConfig.PluginsPath + "highlighter/dp.SyntaxHighlighter/Styles/";
var pool = {"firstCss" : true };
FCKHighLighter.Add = function( value ){
    var oDiv = FCK.CreateElement("div");
    oDiv._FCKhighLighter = "hlDiv" + Math.random() ;
    oDiv.className="dp-highlighter";
    oDiv.innerHTML = value;
    if(pool.firstCss) {
        pool.firstCss = false;
        //oDiv.innerHTML += "<link href="" + CSS_PATH + "SyntaxHighlighter.css" href="" + CSS_PATH + "SyntaxHighlighter.css"" + "type='text/css' rel='stylesheet'></link>";
    }
    // alert(oDiv.innerHTML);
}
FCKHighLighter.OnDoubleClick = function( div ){
//    if(div._FCKhighLighter = "hlDiv") FCKCommands.GetCommand( 'HighLighter' ).Execute() ;
    if(div.className == "dp-highlighter" && div.tagName=="DIV") FCKCommands.GetCommand( 'HighLighter' ).Execute() ;
}
FCK.RegisterDoubleClickHandler( FCKHighLighter.OnDoubleClick, 'DIV' ) ;

第五步:找一個21×21px的gif圖片作為按鈕,取名為“highlighter.gif”。

第六步:關鍵步驟,創建插入代碼對話框,取名為“highlighter.html”。內容如下――
復制代碼 代碼如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" />
<meta http-equiv="expires" content="0" />
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shCore.js" src="dp.SyntaxHighlighter/Scripts/shCore.js" ></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushCSharp.js" src="dp.SyntaxHighlighter/Scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushPhp.js" src="dp.SyntaxHighlighter/Scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushJScript.js" src="dp.SyntaxHighlighter/Scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushJava.js" src="dp.SyntaxHighlighter/Scripts/shBrushJava.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushVb.js" src="dp.SyntaxHighlighter/Scripts/shBrushVb.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushSql.js" src="dp.SyntaxHighlighter/Scripts/shBrushSql.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushXml.js" src="dp.SyntaxHighlighter/Scripts/shBrushXml.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushDelphi.js" src="dp.SyntaxHighlighter/Scripts/shBrushDelphi.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushPython.js" src="dp.SyntaxHighlighter/Scripts/shBrushPython.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushRuby.js" src="dp.SyntaxHighlighter/Scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushCss.js" src="dp.SyntaxHighlighter/Scripts/shBrushCss.js"></script>
<script type="text/javascript" src="dp.SyntaxHighlighter/Scripts/shBrushCpp.js" src="dp.SyntaxHighlighter/Scripts/shBrushCpp.js"></script>
<title>插入代碼</title>
<script language="javascript" type="text/javascript"><!--
var oEditor = window.parent.InnerDialogLoaded() ;
var FCKLang = oEditor.FCKLang ;
var FCKHighLighter = oEditor.FCKHighLighter ;
window.onload = function () {
    oEditor.FCKLanguageManager.TranslatePage( document ) ;
    window.parent.SetOkButton( true ) ;    
    LoadSelected();
document.getElementById("code").focus();
}
function Ok()
{
    if(document.getElementById("code").value.length==0)
    {
        alert(FCKLang['CodeErrNoName']);
        return false;
    }    
//    dp.SyntaxHighlighter.ClipboardSwf = 'dp.SyntaxHighlighter/Scripts/clipboard.swf';
    var result=dp.SyntaxHighlighter.HighlightAll('code',0,1,0,1,0);
    
    var str = "";
    for(key in result)
    {
        str += result[key][0];
    }
    FCKHighLighter.Add( str ) ;
    return true ;
}
var eSelected = oEditor.FCKSelection.GetSelectedElement() ;
function LoadSelected()
{
    if ( !eSelected ){ return ;}
    if ( eSelected.tagName == 'DIV' && eSelected.className=="dp-highlighter" )
    {
     var ol = eSelected.document.getElementsByTagName("ol"); //火狐下提示這里出錯
        var codeClass = ol[0].className.substring(3,ol[0].className.length);
     var ddlv='';
     switch(codeClass){
     case "cpp":
     document.getElementById("code").className="cpp";
     ddlv="cpp";
     break;
     case "c": //c#,javascript php 不明白為什么這三種語言的CSS名都是dp-c,所以區分不了
     document.getElementById("code").className="csharp";
     ddlv="c#";
     break;
     case "css":
     document.getElementById("code").className="css";
     ddlv="css";
     break;
     case "delphi":
     document.getElementById("code").className="delphi";
     ddlv="delphi";
     break;
     case "j":
     document.getElementById("code").className="java";
     ddlv="java";
     break;
     case "py":
     document.getElementById("code").className="python";
     ddlv="python";
     break;
     case "rb":
     document.getElementById("code").className="ruby";
     ddlv="ruby";
     break;
     case "sql":
     document.getElementById("code").className="sql";
     ddlv="sql";
     break;
     case "vb":
     document.getElementById("code").className="vb";
     ddlv="vb";
     break;
     case "xml":
     document.getElementById("code").className="xml";
     ddlv="xml";
     break;
     }
        var codeTypeNum = document.getElementById("codeType").options.length;
        for(var i=0;i<codeTypeNum;i++)
        {
            if(document.getElementById("codeType").options[i].value == ddlv)
            {
                document.getElementById("codeType").options[i].selected = true;
            }
        }
//        var codeContent = eSelected.nextSibling.innerHTML;
    //    document.getElementById('code').value = codeContent.replace("&lt;" , "<");
    //document.getElementById('code').value = codeContent.replace(/<[^>]+>/g, "");
    
     if(navigator.userAgent.indexOf("MSIE")>0){
     document.getElementById('code').value = ol[0].innerText;
     }else{
     document.getElementById('code').value = ol[0].textContent;
     }
    }
    else eSelected == null ;
}
// --></script>
</head>
<body>
<table style="width:100%;">
<tr>
<td style="width:10%; line-height:25px;"><span fckLang="CodeDlgName"></span></td>
<td>
<select id="codeType" style="width:250px;" onchange="document.getElementById('code').className =this.value;">
     <option value="csharp">C#</option>
     <option value="php">PHP</option>
     <option value="javascript">Javascript</option>
     <option value="xml">Xml</option>
     <option value="xml">Html</option>
     <option value="css">Css</option>
     <option value="cpp">C/C++</option>
     <option value="delphi">Delphi</option>
     <option value="java">Java</option>
     <option value="python">Python</option>
     <option value="ruby">Ruby</option>
     <option value="sql">Sql</option>
     <option value="vb">VB</option>
     </select>    
</td>
</tr>
<tr>
<td><span fckLang="CodeArea"></span></td>
<td>
<textarea rows="25" cols="80" class="csharp" name="code" id="code">

最終目錄結構如下:

      第七步:找到“fckconfig.js”文件。(這是fckeditor的核心配置文件,應該能找到的吧……)找“FCKConfig.ToolbarSets”這個key,然后在里面加入“'HighLighter'”。例如:

復制代碼 代碼如下:

FCKConfig.ToolbarSets["Basic"] = [
['Style','FontFormat','FontName','FontSize','-','Bold','Italic','-','TextColor','BGColor','-','HighLighter']

第八步:還是在“fckconfig.js”中,找到“FCKConfig.Plugins”這個key,添加如下代碼:
復制代碼 代碼如下:

FCKConfig.Plugins.Add( 'highlighter','zh-cn') ;

好了,以FCKEditor插件形式出現的SyntaxHighlighter代碼高亮顯示就完成了。

最終效果如圖:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频久久网| 国产精品视频区| 5252色成人免费视频| 日韩午夜在线视频| 久久人人爽国产| 日韩亚洲一区二区| 亚洲国产精品专区久久| 免费91在线视频| 久久久久九九九九| 久久久久久久久网站| xxxxx91麻豆| 正在播放亚洲1区| 精品久久中文字幕| 欧美国产日韩一区二区| 理论片在线不卡免费观看| 亚洲国产精品久久| 精品视频在线播放色网色视频| 一区二区三区天堂av| 自拍偷拍亚洲在线| 姬川优奈aav一区二区| 亚洲网址你懂得| 久久久精品在线观看| 最新的欧美黄色| 粉嫩老牛aⅴ一区二区三区| 欧美韩国理论所午夜片917电影| 中文字幕日韩免费视频| 国产精品第10页| 成人午夜一级二级三级| 久久天堂av综合合色| 久久人人爽人人爽人人片av高清| 成人做爽爽免费视频| 亚洲男女自偷自拍图片另类| xxx欧美精品| 91高清免费在线观看| 97人洗澡人人免费公开视频碰碰碰| 欧美日韩福利视频| 亚洲专区中文字幕| 亚洲精品日韩激情在线电影| 久久久av亚洲男天堂| 欧美刺激性大交免费视频| 久久久久久18| 亚洲精品久久久久中文字幕欢迎你| 国产一区二区欧美日韩| 亚洲伊人成综合成人网| 中文字幕亚洲欧美在线| 国产玖玖精品视频| 热门国产精品亚洲第一区在线| 92版电视剧仙鹤神针在线观看| 亚洲人成电影在线| 日韩av在线高清| 中文字幕亚洲欧美日韩2019| 日韩免费黄色av| 日韩av有码在线| 亚洲男人天堂2019| 亚洲天堂男人的天堂| 热久久99这里有精品| 欧美日韩亚洲精品内裤| 日韩在线视频网站| 亚洲成人中文字幕| 国产精品精品一区二区三区午夜版| 欧美视频在线免费看| 奇门遁甲1982国语版免费观看高清| 亚洲欧洲第一视频| 精品国内产的精品视频在线观看| 久久久女人电视剧免费播放下载| 久久精品色欧美aⅴ一区二区| 精品自拍视频在线观看| 亚洲自拍欧美色图| 欧美激情中文网| 国产91免费观看| 成人av资源在线播放| 亚洲国产欧美一区二区三区同亚洲| 91社影院在线观看| 日韩亚洲精品电影| 狠狠综合久久av一区二区小说| 国产精品视频久久| 成人激情黄色网| 欧美中文字幕在线视频| 亚洲性av在线| 福利一区视频在线观看| 欧美成人精品一区二区三区| 亚洲免费视频一区二区| 浅井舞香一区二区| 欧美电影在线免费观看网站| 久久人人爽人人爽人人片av高请| 欧美日韩国产在线播放| 日韩在线欧美在线国产在线| 亚洲国产美女精品久久久久∴| 美女扒开尿口让男人操亚洲视频网站| 亚洲国产精品电影在线观看| 国产日韩欧美在线视频观看| 国产精品久久久久久久7电影| 日韩有码在线播放| 日韩高清免费观看| 欧美精品在线免费观看| 国产精品亚洲视频在线观看| 中日韩午夜理伦电影免费| 欧美精品福利在线| 久久精品视频va| 在线视频一区二区| 欧美日韩国产精品一区| 日韩精品极品在线观看播放免费视频| 国产精品日韩在线观看| 91网站在线免费观看| 欧美一区二区三区图| 中国日韩欧美久久久久久久久| 国产99久久精品一区二区永久免费| 日韩一区二区三区在线播放| 97在线观看视频| 欧美日韩成人免费| 国产精品视频一区二区三区四| 欧美精品videosex牲欧美| 亚洲аv电影天堂网| 在线视频国产日韩| 久久99国产综合精品女同| 亚洲免费影视第一页| 日韩成人在线观看| 欧美日韩免费一区| 欧美成人亚洲成人| 国产丝袜一区二区三区免费视频| 亚洲裸体xxxx| 91久久精品美女| 日韩中文字幕免费| 亚洲欧美在线免费| 美女性感视频久久久| 97精品伊人久久久大香线蕉| 国产在线一区二区三区| 91在线观看免费网站| 国产精品久久久久91| 国模视频一区二区三区| 久久精品国产电影| 亚洲国产欧美一区二区丝袜黑人| 亚洲电影免费观看高清完整版在线观看| 亚洲免费电影一区| 国产精品va在线播放我和闺蜜| 高清在线视频日韩欧美| 色综合导航网站| 国产午夜精品视频| 亚洲色图在线观看| 中文字幕精品av| 亚洲一区二区免费| 精品福利樱桃av导航| 亚洲精品suv精品一区二区| 精品毛片三在线观看| 国产欧美一区二区三区视频| 亚洲桃花岛网站| 欧美亚洲午夜视频在线观看| 91高清在线免费观看| 国产成人亚洲综合| 欧美xxxx14xxxxx性爽| 国产成+人+综合+亚洲欧洲| 亚洲国产成人在线视频| 欧美一级电影久久| 久久久精品免费视频| 欧美成人四级hd版| 欧美激情手机在线视频| 日韩国产欧美精品一区二区三区| 亚洲日本中文字幕| 欧美一级淫片丝袜脚交| 91成人精品网站| 久久国产精品网站| 国产精品视频中文字幕91| 亚洲成年网站在线观看| 亚洲精品av在线播放|