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

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

asp.net 為FCKeditor開發代碼高亮插件實現代碼

2024-09-06 19:16:31
字體:
來源:轉載
供稿:網友
所以就為FCKeditor寫了個InsertCode的插件。整個插件的制作過程非常簡單:
FCKeditor插件開發請參考FCKeditor官網的文檔:

http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Customization/Plug-ins
首先,我們在FCKeditor/editor/plugins目錄下新建一個insertcode目錄,并在insertcode目錄下新建一個fckplugin.js文件。
在新建的fckplugin.js文件中插入下面的代碼:
//插入代碼
復制代碼 代碼如下:

FCKCommands.RegisterCommand('InsertCode', new FCKDialogCommand('InsertCode', FCKLang.InsertCode, FCKPlugins.Items['insertcode'].Path + 'insertcode.aspx', 700, 600)) ;
var insertcodeItem = new FCKToolbarButton('InsertCode', FCKLang['InsertCode']) ;
insertcodeItem.IconPath = FCKPlugins.Items['insertcode'].Path + 'images/insertcode.gif';
FCKToolbarItems.RegisterItem('InsertCode', insertcodeItem);



在FCKeditor/editor/plugins/insertcode目錄下創建images,lang,languages目錄,在lang目錄下新建en.js,zh-cn.js。en.js的內容為:
FCKLang.InsertCode = 'Insert Codes' ;
zh-cn.js的內容為:
FCKLang.InsertCode = '插入代碼' ;
下載CodeHighlighter http://www.49028c.com/codes/94.html
控件并解壓,把CodeHighlighter/bin目錄下的ActiproSoftware.CodeHighlighter.Net20.dll,ActiproSoftware.Shared.Net20.dll,CodeHighlighterTest.dll三個DLL復制到BlogEngine.Web/bin目錄,
將CodeHighlighter/Languages里的Lexers整個目錄復制到FCKeditor/editor/plugins/insertcode/languages目錄,
將CodeHighlighter/Images/OutliningIndicators/目錄下的所有圖片復制到FCKeditor/editor/plugins/insertcode/images目錄,并將這個圖片下載保存到FCKeditor/editor/plugins/insertcode/images/insertcode.gif。

在FCKeditor/editor/plugins/insertcode/目錄下新建insertcode.aspx,注意,如果是用Visual Studio新建的話

insertcode.aspx內容如下: 
復制代碼 代碼如下:

<%@ Page Language="C#" ValidateRequest="false" %>

<%@ Register TagPrefix="CH" Namespace="ActiproSoftware.CodeHighlighter" Assembly="ActiproSoftware.CodeHighlighter.Net20" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
static string code = string.Empty;

protected void btnSubmit_Click(object sender, EventArgs e)
...{
code = txtCode.Text;
Highlighter.LanguageKey = ddlLangType.SelectedItem.Text;
Highlighter.OutliningEnabled = chkOutLining.Checked;
Highlighter.LineNumberMarginVisible = chkLineNum.Checked;
Highlighter.Text = code;
}
protected void Page_Load(object sender, EventArgs e)
...{
if (!Page.IsPostBack)
...{
CodeHighlighterConfiguration config = (CodeHighlighterConfiguration)ConfigurationManager.GetSection("codeHighlighter");
string[] keys = new string[config.LanguageConfigs.Keys.Count];
config.LanguageConfigs.Keys.CopyTo(keys, 0);
Array.Sort(keys);
foreach (string key in keys)
...{
ddlLangType.Items.Add(key);
}
ddlLangType.SelectedIndex = ddlLangType.Items.IndexOf(ddlLangType.Items.FindByText("C#"));
}
}

protected void CodeHighlighter_PostRender(object sender, EventArgs e)
...{
if (!string.IsNullOrEmpty(Highlighter.Output))
...{
lblCode.Text = Highlighter.Output.Replace(" ", "&nbsp;&nbsp;").Replace("/n", "<br />");
Response.Write("<scr" + "ipt>window.parent.SetOkButton( true );</scr" + "ipt>");
}
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>InsertCode By Moozi.Net</title>

<script src="http://www.cnblogs.com/dialog/common/fck_dialog_common.js" type="text/javascript"></script>

<script type="text/javascript">

var oEditor = window.parent.InnerDialogLoaded() ;

// Gets the document DOM
var oDOM = oEditor.FCK.EditorDocument ;

var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;

window.onload = function()
...{
//window.parent.SetOkButton( false );
}

function Ok()
...{
if(GetE('txtCode').value == '')
...{
alert("代碼內容不能為空!");
return false;
}
oEditor.FCK.InsertHtml(document.getElementById("lblCode").innerHTML) ;
return true ;
}

</script>

<style type="text/css">
.langType
...{
padding-bottom: 5px;
}
.btnRun
...{
padding-top: 5px;
text-align: right;
}
pre
...{
background-color: #f4f4f4;
border-style: solid;
border-width: 1px;
border-color: #C0C0C0;
font-family: Courier New, monospace;
font-size: 10pt;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div class="langType">
語言類型:<asp:DropDownList ID="ddlLangType" runat="server">
</asp:DropDownList>
<asp:CheckBox ID="chkOutLining" Text="折疊代碼" runat="server" Checked="true" />
<asp:CheckBox ID="chkLineNum" Text="允許行號" runat="server" Checked="false" />
</div>
<div>
<asp:TextBox ID="txtCode" runat="server" TextMode="multiline" Width="640px" Height="390px"></asp:TextBox>
</div>
<div class="btnRun">
<asp:Button ID="btnSubmit" runat="server" Text=" 轉 換 " OnClick="btnSubmit_Click" />
<pre id="pre1" style="display: none;">
<CH:CodeHighlighter runat="server" ID="Highlighter" OnPostRender="CodeHighlighter_PostRender" />
</pre>
<asp:Label ID="lblCode" Style="display: none;" runat="server"></asp:Label>
</div>
</div>
</form>
</body>
</html>



接下來修改FCKeditor/fckconfig.js,在原文件中我們能找到// FCKConfig.Plugins.Add( 'autogrow' ) ;這段代碼,在這段代碼下一行插入:FCKConfig.Plugins.Add( 'insertcode' , 'zh-cn,en' ) ;

最后修改Web.config文件:(請參考CodeHighlighter/Web.config)
在<configuration>里插入:
<configSections>
<section name="codeHighlighter" requirePermission="false" type="ActiproSoftware.CodeHighlighter.CodeHighlighterConfigurationSectionHandler, ActiproSoftware.CodeHighlighter.Net20" />
</configSections>




在<system.web></system.web>后插入:
<codeHighlighter>
<cache languageTimeout="3" />
<keywordLinking enabled="true" target="_blank" defaultKeywordCollectionKey="ActiproKeywords">
<keywordCollection key="ActiproKeywords">
<explicitKeyword tokenKey="IdentifierToken" patternValue="Actipro" url="http://www.actiprosoftware.com" caseSensitive="false" />
<explicitKeyword tokenKey="IdentifierToken" patternValue="CodeHighlighter" url="http://www.codehighlighter.com" caseSensitive="false" />
</keywordCollection>
</keywordLinking>
<languages>
<language key="Assembly" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Assembly.xml" />
<language key="BatchFile" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.BatchFile.xml" />
<language key="C#" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.CSharp.xml" />
<language key="CSS" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.CSS.xml" />
<language key="HTML" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.HTML.xml" />
<language key="INIFile" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.INIFile.xml" />
<language key="Java" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Java.xml" />
<language key="JScript" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.JScript.xml" />
<language key="Lua" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Lua.xml" />
<language key="MSIL" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.MSIL.xml" />
<language key="Pascal" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Pascal.xml" />
<language key="Perl" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Perl.xml" />
<language key="PHP" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.PHP.xml" />
<language key="PowerShell" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.PowerShell.xml" />
<language key="Python" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.Python.xml" />
<language key="SQL" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.SQL.xml" />
<language key="VB.NET" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.VBDotNet.xml" />
<language key="VBScript" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.VBScript.xml" />
<language key="XAML" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.XAML.xml" />
<language key="XML" definitionPath="~/fckeditor/editor/plugins/insertcode/languages/lexers/ActiproSoftware.XML.xml" />
</languages>
<lineNumberMargin foreColor="Teal" paddingCharacter=" " visible="true" />
<outlining enabled="true" imagesPath="~/fckeditor/editor/plugins/insertcode/images/" />
<spacesInTabs count="4" />
</codeHighlighter>


這次的插件就完工了。這種方法可以說是一勞永逸,以后更換高版本的FCKeditor時,只需要修改fckconfig.js將這個插件加入就可以了
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久国产视频| 日韩电视剧免费观看网站| 国产99久久精品一区二区| 91av在线网站| 国产精品扒开腿爽爽爽视频| 欧美三级欧美成人高清www| 最近2019中文字幕mv免费看| 亚洲人成免费电影| 亚洲人成在线观| 国产主播在线一区| 中文字幕精品一区二区精品| 青青久久av北条麻妃海外网| 国产一区二区丝袜高跟鞋图片| 精品久久久久久亚洲精品| 国产精品99蜜臀久久不卡二区| 国产美女久久精品| 日韩一区二区三区在线播放| 91精品久久久久久久久青青| 久久综合九色九九| 久久久久北条麻妃免费看| 亚洲欧美国产视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产91精品最新在线播放| 亚洲精品美女在线| 成人乱色短篇合集| 国产精品露脸自拍| 成人a级免费视频| 亚洲国产99精品国自产| 亚洲精品一区二三区不卡| 欧美午夜精品久久久久久人妖| 91精品啪在线观看麻豆免费| 欧美洲成人男女午夜视频| 国产精品91久久久| 成人免费视频97| 亚洲精品国产精品国自产观看浪潮| 亚洲大胆人体av| 91精品久久久久久综合乱菊| 欧美精品18videosex性欧美| 日韩视频亚洲视频| 久久久久久亚洲精品中文字幕| 欧美成人免费视频| 亚洲精品一区二三区不卡| 国产精品吊钟奶在线| 九九视频直播综合网| 欧美一级黑人aaaaaaa做受| 欧美成人黑人xx视频免费观看| 国产午夜精品全部视频播放| 成人444kkkk在线观看| 国产精品pans私拍| 亚洲tv在线观看| 色综合久久悠悠| 国产成人一区二区在线| 26uuu另类亚洲欧美日本老年| 日韩亚洲成人av在线| 欧美性视频网站| 国产精品你懂得| 韩国日本不卡在线| 亚洲第一精品夜夜躁人人爽| 亚洲免费一在线| 国产黑人绿帽在线第一区| 国产做受高潮69| 中文字幕日韩在线播放| 国产va免费精品高清在线| 久久久久久久电影一区| 亚洲福利视频在线| 国产精品白丝jk喷水视频一区| 亚洲国产精品系列| 国产99久久精品一区二区永久免费| 97香蕉久久夜色精品国产| 欧美成人剧情片在线观看| 国产在线观看精品| 韩国美女主播一区| 欧美另类99xxxxx| 成人国产精品日本在线| 亚洲欧美在线一区二区| 国产成人久久精品| 九九热精品视频在线播放| 亚洲精品网址在线观看| 国产欧美欧洲在线观看| 久久影视三级福利片| 欧美一区二区大胆人体摄影专业网站| 国产在线视频2019最新视频| 亚洲人线精品午夜| 正在播放欧美视频| 精品中文字幕视频| 91日本视频在线| 一区三区二区视频| 亚洲一区免费网站| 97在线视频国产| 国产精品久久久久久久久久久久久久| 色婷婷综合成人av| 亚洲白虎美女被爆操| 正在播放国产一区| 91日韩在线播放| 97免费视频在线播放| 欧美xxxx做受欧美| 一区二区三区在线播放欧美| 国产精品一区二区电影| 欧美日韩一区免费| 97国产精品视频| 韩国欧美亚洲国产| 久久99精品国产99久久6尤物| 成人免费福利视频| www国产亚洲精品久久网站| 成人高h视频在线| 在线精品国产欧美| 亚洲国产欧美一区二区丝袜黑人| 亚洲第一区中文99精品| 欧美丝袜一区二区三区| 欧美精品午夜视频| 精品电影在线观看| 欧美日韩一区二区免费在线观看| 欧美在线视频一二三| 欧美一性一乱一交一视频| 欧美另类交人妖| 日韩精品视频在线观看网址| 日本欧美国产在线| 高清欧美电影在线| 2020国产精品视频| 国产美女久久久| 国产美女精品免费电影| 国产一区二区三区视频在线观看| 91免费高清视频| 中文字幕亚洲欧美一区二区三区| 一本色道久久综合狠狠躁篇的优点| 中文字幕一区二区三区电影| 97精品免费视频| 久久久精品一区| 欧美寡妇偷汉性猛交| 2019中文字幕在线观看| 国产精品视频网站| 亚洲人成伊人成综合网久久久| 亚洲福利视频网| 欧美大成色www永久网站婷| 欧美丝袜一区二区三区| 亚洲人高潮女人毛茸茸| 国产成人中文字幕| 亚洲午夜色婷婷在线| 国产精品无码专区在线观看| 欧洲日本亚洲国产区| 69**夜色精品国产69乱| 日韩成人网免费视频| 色偷偷偷综合中文字幕;dd| 俺去啦;欧美日韩| 国内精品久久久久久久久| 国产精品91免费在线| 亚州欧美日韩中文视频| 亚洲人成伊人成综合网久久久| 浅井舞香一区二区| 97精品在线视频| 亚洲欧洲在线看| 亚洲资源在线看| 亚洲午夜性刺激影院| 欧美二区在线播放| 国产精品丝袜久久久久久高清| 成人欧美一区二区三区在线湿哒哒| 中文字幕日韩电影| 91在线高清免费观看| 久久伊人精品天天| 欧美激情二区三区| 亚洲最大福利视频网站| 日本中文字幕久久看| 久久久久久网站| 欧美视频免费在线观看|