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

首頁 > 編程 > .NET > 正文

asp.net 為FCKeditor開發(fā)代碼高亮插件實(shí)現(xiàn)代碼

2024-07-21 02:53:25
字體:
供稿:網(wǎng)友
昨天已經(jīng)將BlogEngine的可視化編輯器換成了FCKeditor,作為一個(gè)程序員,在博客中插入代碼是很重要的一塊。網(wǎng)上現(xiàn)有的都是修改FCKeditor的fckeditorcode_gecko.js和fckeditorcode_ie.js以達(dá)到InsertCode的目的。這個(gè)方法非常麻煩,當(dāng)要使用FCKeditor新版本時(shí)都要重新修改這兩個(gè)文件,非常影響我們的效率。
 
所以就為FCKeditor寫了個(gè)InsertCode的插件。整個(gè)插件的制作過程非常簡單:
FCKeditor插件開發(fā)請參考FCKeditor官網(wǎng)的文檔: 

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

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目錄下創(chuàng)建images,lang,languages目錄,在lang目錄下新建en.js,zh-cn.js。en.js的內(nèi)容為: 
FCKLang.InsertCode = 'Insert Codes' ; 
zh-cn.js的內(nèi)容為: 
FCKLang.InsertCode = '插入代碼' ; 
下載CodeHighlighter
控件并解壓,把CodeHighlighter/bin目錄下的ActiproSoftware.CodeHighlighter.Net20.dll,ActiproSoftware.Shared.Net20.dll,CodeHighlighterTest.dll三個(gè)DLL復(fù)制到BlogEngine.Web/bin目錄, 
將CodeHighlighter/Languages里的Lexers整個(gè)目錄復(fù)制到FCKeditor/editor/plugins/insertcode/languages目錄, 
將CodeHighlighter/Images/OutliningIndicators/目錄下的所有圖片復(fù)制到FCKeditor/editor/plugins/insertcode/images目錄,并將這個(gè)圖片下載保存到FCKeditor/editor/plugins/insertcode/images/insertcode.gif。 

在FCKeditor/editor/plugins/insertcode/目錄下新建insertcode.aspx,注意,如果是用Visual Studio新建的話
asp.net 為FCKeditor開發(fā)代碼高亮插件實(shí)現(xiàn)代碼
insertcode.aspx內(nèi)容如下: 
復(fù)制代碼代碼如下:

<%@ 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(" ", "  ").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("代碼內(nèi)容不能為空!"); 
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=" 轉(zhuǎn) 換 " 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時(shí),只需要修改fckconfig.js將這個(gè)插件加入就可以了


注:相關(guān)教程知識閱讀請移步到編輯器頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
蜜桃av免费观看| 国产欧美精品一区二区三区介绍| 人人爱人人干婷婷丁香亚洲| 亚洲男人都懂第一日本| 亚洲女成人图区| 中文字幕国产精品一区二区| 中文字幕在线免费视频| 高清av免费看| 欧美男人的天堂| 毛片av一区二区| 久久国产综合视频| 欧美激情精品| www.欧美精品一二三区| 亚洲精品天天看| 中文字幕欧美视频| 欧美日韩色图| 男女免费视频网站| 波多野结衣av无码| 波多野结衣av在线免费观看| 国产肥臀一区二区福利视频| 亚洲第一免费视频| 欧美色图五月天| 黄色国产网站| 女人高潮被爽到呻吟在线观看| 久久国产精品 国产精品| 婷婷亚洲五月| 男生女生差差差的视频在线观看| 精品国产伦一区二区三区观看说明| 欧美视频在线观看免费网址| 欧美极品欧美精品欧美图片| 天堂网www天堂在线网| 国产亚洲黄色片| 亚洲天堂av一区| 国产精品自拍偷拍视频| 日日天天久久| 色婷婷综合缴情免费观看| 91精品在线观看入口| 色老汉一区二区三区| 日日躁夜夜躁白天躁晚上躁91| 日本在线精品| 美国一级片在线免费观看视频| 欧美丰满老妇熟乱xxxxyyy| 韩国一区二区三区四区| 日本xxxwww免费视频| 亚洲最大成人综合网| 日本a级在线| 久久93精品国产91久久综合| 日本丰满少妇裸体自慰| 国产a级黄色大片| 在线观看黄av| 国产乱码77777777| 人妻互换一二三区激情视频| 奇米777第四色| 国产精品无码一区二区三区免费| 日韩一级片一区二区| 成年人视频在线观看免费| 国产99久久精品一区二区永久免费| 亚洲女人天堂a在线播放| 久久品道一品道久久精品| 久久久久亚洲精品中文字幕| h视频久久久| 人妻无码久久一区二区三区免费| 欧美激情国产日韩| 国产一区二区你懂的| 青柠在线免费观看| 免费av一区二区三区四区| 国卡一卡二卡三免费网站| 黄动漫视频高清在线| 亚洲一区二区三区四区在线免费观看| 五月激情综合网| 黄色三级电影网| 欧美wwwwxxxx| 日韩黄色短视频| 一本加勒比北条麻妃| 日韩妆和欧美的一区二区| 精品无码人妻一区| 一区二区三区在线观看网站| 亚洲精品综合精品自拍| 在线播放国产一区中文字幕剧情欧美| 粗大的内捧猛烈进出在线视频| 熟妇人妻久久中文字幕| 国产精品福利小视频| 欧美日韩国产页| 国产精品久久久久久久泡妞| 欧美高清激情brazzers| 久久99国产精品麻豆| 日韩av在线免费看| 国产精品偷伦视频免费观看国产| 国产成人精品免费| **欧美日韩在线| 性xxxxbbbb| 欧美一二三区在线| 久久久久亚洲av片无码下载蜜桃| 午夜激情视频在线观看| 无码精品人妻一区二区三区影院| 亚洲自拍电影| 成人影院大全| 熟女丰满老熟女熟妇| 免费不卡中文字幕在线| av网站大全在线观看| 成人免费无遮挡无码黄漫视频| 亚洲福利在线播放| 亚洲成人av片在线观看| 日韩成人伦理| 少妇熟女视频一区二区三区| 香蕉国产成人午夜av影院| 中文字幕欧美日韩va免费视频| 国产精品无码一区| 国产精品高清免费在线观看| 97超级碰在线看视频免费在线看| 中文字幕亚洲欧美日韩2019| www.爱色av.com| 妺妺窝人体色www在线小说| 成人免费在线视频观看| 亚洲久色影视| 亚洲最大最好的私人影剧院| 在线播放视频一区| 三级精品视频| 亚洲精品久久久久中文字幕欢迎你| 九色视频网站入口| 亚洲一区二区三区乱码aⅴ蜜桃女| 色91精品久久久久久久久| 欧美性视频在线播放| 精品亚洲一区二区三区在线播放| 91嫩草香蕉| 成年女人在线看片| 日韩精品久久久久久久软件91| 男人的天堂色| 狠狠噜天天噜日日噜| www·91·com| 日韩高清有码在线| 国产一区二区三区视频免费观看| 一区二区三区在线视频播放| 天天鲁一鲁摸一摸爽一爽| 精品无码av一区二区三区| 久久夜色精品国产噜噜亚洲av| 日韩福利在线播放| 精品乱码亚洲一区二区不卡| 亚洲性受xxx喷奶水| 亚洲精品免费一区亚洲精品免费精品一区| fc2ppv完全颜出在线播放| 宅男66日本亚洲欧美视频| 亚洲午夜日本在线观看| 亚洲美女在线看| 欧美jizz19性欧美| 亚洲欧美综合图片| 成年人黄视频在线观看| 久久久国产精华液999999| 精品久久国产视频| 国产一区二区三区播放| 国产凹凸在线观看一区二区| 国产高清视频一区二区| 自拍偷拍欧美| 亚洲精品成人悠悠色影视| 九九热只有这里有精品| 8090成年在线看片午夜| 亚洲另类av| 男人的天堂va| 欧美一进一出视频| 亚洲一本大道在线| 欧美裸体在线版观看完整版| 欧美刺激脚交jootjob| 毛片一级免费一级| 日韩欧美你懂的| 春色成人在线视频| 国产剧情日韩欧美| 欧美作爱福利免费观看视频| 天天操天天干天天操天天干| 九九视频在线观看| 精品99久久久久成人网站免费| 欧洲中文字幕精品| 国产乱码精品一区二区三区av| 日本黄色精品| 国产99久久精品一区二区 夜夜躁日日躁| 欧美成人福利在线观看| 日本成熟性欧美| 亚洲大型综合色站| www.久久色| 精品人体无码一区二区三区| 中文字幕日韩专区| 制服丝袜亚洲网站| 黄页网站免费观看| 蜜桃传媒视频麻豆一区| 欧美一级片免费播放| 中文字幕被公侵犯的漂亮人妻| 亚洲最大福利视频网| 岛国精品视频在线播放| 中国一区二区三区| 国产一区二区女内射| 日韩精品视频免费播放| 欧美一区二区三| 中文字幕欧美激情| 亚洲精品永久免费视频| 国产9色视频| 风韵丰满熟妇啪啪区老熟熟女| 国语自产偷拍精品视频偷| 不卡亚洲精品| 久久男人的天堂| heyzo久久| 鲁鲁视频www一区二区| 国产a国产a国产a| 福利视频一二区| 国产欧美日韩精品丝袜高跟鞋| 亚洲高清影院| 精品午夜久久福利影院| www.超级碰| 国产a√精品区二区三区四区| 亚洲图片自拍偷拍| 天堂网站www天堂资源在线| 少妇高潮爽到全身痉挛抽搐| 日韩一级免费毛片| 国产精品一二区| 国产探花在线看| 午夜国产精品视频| 蜜臀在线免费观看| 国产精品爱啪在线线免费观看| aa在线免费观看| 91精品国产一区二区三区蜜臀| 手机在线看片1024| 国产精品久久久久毛片大屁完整版| 亚洲高清视频网站| 国产午夜在线播放| 91精东传媒理伦片在线观看| av成人黄色| 欧美精品一区二区三区在线播放| 色美美综合视频| 欧美性受xxxx免费视频| 日本卡一卡2卡3卡4精品卡网站| 岛国在线视频免费看| 国产精品三级久久久久久电影| 国产成人一区二区三区小说| av在线免费观看不卡| 久久电影视频| 丝袜美女写真福利视频| 手机av在线不卡| 一本一本久久| 99re在线视频播放| 国产精品久久成人免费观看| 精品国产大片大片大片| 欧美性生活一级片| 久久色成人在线| 亚洲三级观看| 电影av在线| 成人免费高清在线观看| 国产999在线观看| 国精品日韩欧美一区二区三区| 青青草精品在线视频| 欧美综合在线观看| 成人毛片视频网站| 91在线视频官网| 欧美日韩一区二区高清| 色婷婷av在线| xxxx欧美18另类的高清| 欧美日韩精品一区二区三区| 亚洲午夜免费电影| 97久久超碰福利国产精品…| 国产精品嫩草影院久久久| 在线亚洲伦理| 人人干视频在线| 国产肥臀一区二区福利视频| 国内精品免费| 91亚洲永久精品| 99热国产在线观看| 精品国产九九九| 日本加勒比一区| 人人在草线视频在线观看| 欧美日韩亚洲精品内裤| 91视频免费看| 国产亚洲激情视频在线| 亚洲激情啪啪| 国产精品一区二区av白丝下载| 国产精品久久久久久成人| 韩国成人漫画| 国模视频一区二区| 国产一级做a爰片久久毛片男| 97久久精品人人爽人人爽蜜臀| 91人人澡人人爽人人精品| 成年网站免费| 欧美色精品天天在线观看视频| 国产日韩欧美91| 日本高清视频免费观看| china中国猛gary| 1024精品久久久久久久久| 国产一区二区网| 一区精品在线播放| 伊人亚洲精品| 激情久久久久久| 永久av免费在线观看| 国产精品久久久久久久浪潮网站| 亚洲欧洲美洲综合色网| 91精品婷婷色在线观看| 精品一区二区中文字幕| 国产亚洲精品高潮| 久久久久国色av免费看影院| 日韩欧美国产一区二区在线播放| 久久久久久网址| 色综合97天天综合网| 青青操在线观看视频| 欧美色图校园春色| 日日操免费视频| 麻豆精品一区二区综合av| 黄网站在线免费| 天天操夜夜操天天射| 女女调教被c哭捆绑喷水百合| 日本三级韩国三级欧美三级| 日韩久久一区二区三区| 色婷婷激情综合| 欧美日本在线一区| 久久福利网址导航| www..com久久爱| 日本www在线播放| 永久www成人看片| 伦理电影国产精品| 亚洲电影免费观看高清| 波多野结衣在线观看视频| 亚洲青色在线| 岛国av中文字幕| 天天干天天草天天射| 精品国产免费人成在线观看| 久久免费少妇高潮99精品| 黄色小视频在线免费看| 91人成网站www| 中文字幕一区二区三区四区视频| jizzjizzjizz孕妇| 成人无遮挡免费网站视频在线观看| 国产普通话bbwbbwbbw| 色天天综合网| 久久成人国产精品入口|