⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code.js

📁 在线网络考试系统源码 教师登陆后功能: 添加/管理题库:选择题 填空/简答/问答 判断题 试卷管理 :组合试卷 评阅试卷 确认给分 合计成绩 控制面板 :重置密码
💻 JS
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------
// 双鱼文本编辑器 images V1.0
// 作者:月伤 melody
// 作品链接:http://www.2fstory.net/blog/View.aspx?blogID=47
//---------------------------------------------------------

var CodeDivBgColor = "#eeeeee";
var CodeDivFontColor = "#000000";

function code()
{
	var str = document.getElementById('CodeText').innerHTML;
	var language = document.getElementById('LanguageDropDownList').value;
	var showLine = document.getElementById('chkLineNumberMarginVisible').checked;
	var canCollapse = document.getElementById('chkOutliningEnabled').checked;
	var canAllCollapse = document.getElementById('ckbIsCollapse').checked;
	var allRegion = document.getElementById('txbCollapseText').value;
	//window.returnValue = FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion);
	//------------------------------------------
	//alert(FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion));
	var editor = window.dialogArguments.EDiaryEditor;
			var oRTE = editor.iframe.contentWindow;
			if(window.isIE) {
				try{
					var html = FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion); 
					oRTE.focus();
					var oRng = oRTE.document.selection.createRange();
					oRng.pasteHTML(html);
					oRng.collapse(false);
					oRng.select();
				}catch(e){}
			}
			else {
				editor.runCMD('insertHTML', html);
			}
			
	//------------------------------------------
	window.close();
}

// 转化为代码格式(代码,语言,是否有行号,是否折叠,是否全部折叠,整个代码的标题)
function FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion)
{
	var CodeDivStyle = "color: "+CodeDivFontColor+";BACKGROUND-COLOR: "+CodeDivBgColor+";font-family: Verdana,宋体;width: 98%;line-height:16px;BORDER: #cccccc 1px solid;PADDING: 4px;FONT-SIZE: 10pt;WORD-BREAK: break-all;";
	if (language != "CSS") {
	    // 将双引号替换成"
	    str = str.replace(/([^\\])"/g,"$1"");
	}
	switch (language)
	{
		case "C#": str = FormatCSharp(str,canCollapse); break;
		case "HTML": str = FormatHTML(str,canCollapse); break;
		case "VBScript": str = FormatVBScript(str,canCollapse); break;
		case "JScript": str = FormatJScript(str,canCollapse); break;
		case "CSS": str = FormatCSS(str,canCollapse); break;
		case "XML": str = FormatXML(str,canCollapse); break;
		case "SQL": str = FormatSQL(str,canCollapse); break;
	}
	if (showLine) str = AddLineNumber(str);
	// 替换换行符为<BR>
	str = str.replace(/\n/g,"<BR>");
	// 替换1个Tab为4个空格,使界面美观一些
	str = str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
	if (canAllCollapse) str = GetHeader(" ",allRegion,"Code",canAllCollapse,true)+"<BR>"+str+"</span>";
	// 给代码加一个边框
	str = "<div style=\""+CodeDivStyle+"\">" + str + "</div>";
	return(str);
}

//---------------------------------------   格式化C#代码   ----------------------------------------
// 格式化C#代码
function FormatCSharp(str,canCollapse)
{	
	if (str.match(/using/g)!=null)
		str = FormatUsing(str,canCollapse);
	str = FormatRegion(str,canCollapse);
	str = FormatBrace(str); 
	str = FormatFunctionRemark(str);
	// 给所有没有收缩功能的行的行头加图片
	str = str.replace(/(^|\n)([^<])/g,"$1<IMG src=\"images/codeimages/InBlock.gif\" align=\"top\">$2");
	// 所有关键字变成蓝色
	var re = /\b(abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string)\b/g;
	str = str.replace(re,"<font color=\"#0000FF\">$1</font>");
	str = FormatCodeRemark(str);
	// 值变为棕色
    str = FormatValue(str);
	// 展开和收缩在同一行时,去掉ExpandedSubBlockEnd.gif
//	str = str.replace(/(<IMG src="images\/codeimages\/ContractedSubBlock.gif.*?>)<IMG src="images\/codeimages\/ExpandedSubBlockEnd.gif.*?>/gi,"$1");
	str = str.replace(/(<IMG src="images\/codeimages\/Contracted(Sub)?Block.gif)([\s\S]*?)(\n)/gi,
		function() {
			var s = arguments[3].replace(/<IMG src="images\/codeimages\/Expanded(Sub)?BlockEnd.gif.*?>/gi,"");
			return(arguments[1]+s+arguments[4]);
		});
	// 替换第一个收缩图片为ExpandedBlockStart.gif,并替换第一个收缩图片前的全部InBlock.gif图片为None.gif
	str = str.replace(/([\s\S]*?)(<IMG src="images\/codeimages\/Expanded)(?:Sub)(BlockStart.gif)/i,
			function() {
				var s = arguments[1].replace(/(<IMG src="images\/codeimages\/)(InBlock)(.gif".*?>)/gi,"$1None$3");
				s += arguments[2]+arguments[3];
				return (s);
			});
	str = str.replace(/(<IMG src="images\/codeimages\/Contracted)(?:Sub)(Block.gif)/i,"$1$2");
	// 替换最后一个收缩图片为ExpandedBlockEnd.gif,并替换最后一个收缩图片后的全部InBlock.gif图片为None.gif
	str = str.replace(/([\s\S]*)(<IMG src=.*?Expanded)(?:Sub)(BlockEnd.gif)([\s\S]*?)$/i,
			function() {
				var s = arguments[1]+arguments[2]+arguments[3];
				s += arguments[4].replace(/(<IMG src="images\/codeimages\/)(InBlock)(.gif".*?>)/gi,"$1None$3");
				return (s);
			});
	// 双引号中关键字不变色
	str = str.replace(/(&quot;)([\s\S]*?)\1/g,
			function() {
				return(arguments[1]+arguments[2].replace(/(<[\s\S]*?>)/g,"")+arguments[1]);
			});
	str = str.replace(/<IMG src="images\/codeimages\/ExpandedSubBlockEnd.gif" align="top"><IMG src="images\/codeimages\/ExpandedSubBlockStart.gif[\s\S]*?><IMG src="images\/codeimages\/ContractedSubBlock.gif[\s\S]*?>/gi,"<IMG src=\"images/codeimages/InBlock.gif\" align=\"top\">");
	return (str);
}

// 格式化using
function FormatUsing(str)
{
	// 给using和正式代码之间的行的行头加上空白图片
	str = str.replace(/^([\s\S]*?)({)/g,
			function() {
				var s = arguments[1].replace(/(\n)([^u])/g,"$1<img src=\"images/codeimages/None.gif\" align=\"top\">$2");
				s = s.replace(/(\n)([^u<])/g,"$1<img src=\"images/codeimages/None.gif\" align=\"top\">$2");
				return(s+arguments[2]);
			});
	// using加一个收缩功能
	str = str.replace(/^([\s\S]*?)\b(using\s)/i,
			function() {
				var rndnum = Math.floor((Math.random()*1000000)).toString().substr(0,4);
				var s = arguments[1].replace(/(.*)([^\n]*)$/g,"$2")
						+GetHeader(arguments[1].replace(/(.*)([^\n]*)$/g,"$2")+arguments[2],"...","CodeUsing",false,true);
				return(s);
			});	
	var arr = str.match(/.*using.*/g);
	if (arr!=null)
		str = str.replace(arr[arr.length-1],
			"<IMG src=\"images/codeimages/ExpandedBlockEnd.gif\" align=\"top\">"+arr[arr.length-1]+"</span>");	
//	str = str.replace(/([\s\S]*\n)(using[\s\S]*?)\n/g,"$1<IMG src=\"images/codeimages/ExpandedBlockEnd.gif\" align=\"top\">$2</span>");
	return(str);
}

// 格式化Region
function FormatRegion(str,canCollapse)
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -