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

📄 edit.js

📁 html生成静态页的小程序
💻 JS
字号:
//URL: www.glzy8.com/ok3w
//QQ:  124895502

var sCurrMode = "EDIT";
var edt_heigh = 220,edt_mode = 1,edt_initdone = 0;
var edt_txtobj;
var edt_htmobj = edt_doc = iframe = edt_win = null;

var userAgent = navigator.userAgent.toLowerCase();
var is_Opera = userAgent.indexOf("opera") != -1 && opera.version();
var is_Mozilla = (navigator.product == "Gecko" && !(userAgent.indexOf("applewebkit") != -1 || navigator.vendor == "Apple Computer, Inc.")) && userAgent.substr(userAgent.indexOf("firefox") + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1);
var edt_escfg = 0;

function isUndef(obj)
{
	return typeof obj == 'undefined' ? true : false;
}

function edt_url_filter(str)
{
	var tmp = str;
	tmp = tmp.replace(/(javascript|jscript|js|about|file|vbscript|vbs)(:)/gim,"$1%3a");
	tmp = tmp.replace(/(value)/gim,"%76alue");
	tmp = tmp.replace(/(document)(.)(cookie)/gim,"$1%2e$3");
	tmp = tmp.replace(/(')/g,"%27");
	tmp = tmp.replace(/(")/g,"%22");
	return(tmp);
}

function edt_PrintTrueText(str)
{
	if(str!="")
	{
		str = str.replace(/\n\ /gim,"<br>&nbsp;");
		str = str.replace(/\n/gim,"<br>");
		str = str.replace(/\ \ \ /gim," &nbsp; ");
		str = str.replace(/\ \ /gim," &nbsp;");
		str = str.replace(/\t/gim," &nbsp; &nbsp; &nbsp;");
		if(str.substr(0,1) == " ")str = "&nbsp;" + str.substr(1);
		return str;
	}
	else
	{return "";}
}

//==================================================================================

//去空格
function trim(str)
{
	return((str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, ''));
}

//鼠标样式
function img_c(obj)
{
	obj.style.backgroundColor='#AAAAAA';
}

function img_ov(obj)
{
	obj.style.backgroundColor='#CCCCCC';
}
function img_ot(obj)
{
	obj.style.backgroundColor='';
}

//插入URL链接
function edt_link()
{
	if(sCurrMode!="EDIT")
	{
		alert("该功能不能在“源码”和“文本”模式下使用。");
		return false;
	}
	
	if(!edt_mode)
	{
		if(is_Mozilla || is_Opera)
		{
			var url = trim(prompt('请输入链接地址', 'http://') + '');
			addcontent(2,"<a href=\"" + url + "\">" + url + "</a>");
		}
		else
		{
			edt_doc.execCommand('CreateLink');
		}
	}
	else
	{
		addcontent(0,'URL','/URL');
	}
}

//执行命令
function format(what,opt) {
	if (opt=="RemoveFormat") {
		what=opt;
		opt=null;
	}
	if (opt==null) edt_doc.execCommand(what,false,true);
	else edt_doc.execCommand(what,"",opt,true);
}

//插入HTML
function insertHTML2(ty,html,htm2,htm3)
{
	var obj=eWebEditor.document;
	edt_win.focus();
	var tmp1,tmp2="",tmp3="";
	tmp1 = html;
	if(ty!=2)
	{
		if(!isUndef(htm3))
		{
			tmp1 = html + "=" + htm3;
		}
		if(!ty)tmp1 = "[" + tmp1 + "]";
		if(!isUndef(htm2))
		{
			if(!ty)tmp2 = "[" + htm2 + "]";
		}
	}
	switch(html.toLowerCase())
	{
	case "b":	format('bold');return;
			break;
	case "i":	format('italic');return;
			break;
	case "u":	format('underline');return;
			break;
	case "pp":	format('InsertParagraph');return;
			break;
	case "sup":	format('superscript');return;
			break;
	case "sub":	format('subscript');return;
			break;
	case "color":	format('ForeColor',htm3);return;
			break;
	case "backcolor":
			format('BackColor',htm3);return;
			break;
	case "align":
			tmp3=htm3.toLowerCase();
			if(tmp3=="center"){format("justifycenter");}
			else if(tmp3=="left"){format("justifyleft");}
			else if(tmp3=="right"){format("justifyright");}
			else if(tmp3=="justify"){format("JustifyFull");}
			return;
			break;
	case "face":
			format("fontname",htm3);
			return;
			break;
	case "size":	format("fontsize",htm3);
			return;
			break;
	case "formatblock":
			format("FormatBlock",htm3);
			return;
			break;
	case "cut":
	case "copy":
	case "paste":
	case "delete":
	case "removeformat":
	case "undo":
	case "redo":
	case "insertorderedlist":
	case "insertunorderedlist":
	case "selectall":
	case "unselect":
	case "unlink":
			format(html);
			return;
			break;
	case "strike":
			format("StrikeThrough");
			return;break;
	case "hr":
			format('InsertHorizontalRule');
			return;break;
	}
	if(is_Mozilla || is_Opera)
	{
		obj=edt_doc;			
		var sl = edt_win.getSelection();
		var rg = sl ? sl.getRangeAt(0) : edt_doc.createRange();
		edt_doc.execCommand('insertHTML', false, tmp1+rg+tmp2);
	}
	else
	{
		edt_win.focus();
		var movestart = true;
		if(!isUndef(obj.selection) && obj.selection.type != 'Text' && obj.selection.type != 'None')
		{
			obj.selection.clear();
		}
		var selrang = obj.selection.createRange()
		var str = tmp1 + selrang.htmlText + tmp2
		selrang.pasteHTML(str) ; 
		if((str!=tmp1+tmp2) && str.indexOf('<') == -1 && str.indexOf('\n') == -1 && str.indexOf('\r') == -1) {
			selrang.moveStart('character', -str.length);
			selrang.select();
		}
	}
}

//插入内容
function addcontent(ty,s1,s2,s3)
{
	if(sCurrMode!="EDIT")
	{
		alert("该功能不能在“源码”和“文本”模式下使用。");
		return false;
	}
	insertHTML2(ty,s1,s2,s3);
	return;
}

function insert(what) {

	if(sCurrMode!="EDIT")
	{
		alert("该功能不能在“源码”和“文本”模式下使用。");
		return false;
	}
	
	switch(what){
	case "nowdate":
		var d = new Date();
		addcontent(1,d.toLocaleDateString());
		break;
	case "nowtime":
		var d = new Date();
		addcontent(1,d.toLocaleTimeString());
		break;
	case "br":
		addcontent(2,"<br>")
		break;
	case "code":
		addcontent(2,'<table width=95% border="0" align="Center" cellpadding="6" cellspacing="0" style="border: 1px Dotted #CCCCCC; TABLE-LAYOUT: fixed"><tr><td bgcolor=#FDFDDF style="WORD-WRAP: break-word"><font style="color: #990000;font-weight:bold">以下是代码片段:</font><br>请输入代码片段</td></tr></table>');
		break;
	case "quote":
		var sel = eWebEditor.document.selection.createRange();
		addcontent(2,'<table width=95% border="0" align="Center" cellpadding="6" cellspacing="0" style="border: 1px Dotted #CCCCCC; TABLE-LAYOUT: fixed"><tr><td bgcolor=#F3F3F3 style="WORD-WRAP: break-word"><font style="color: #990000;font-weight:bold">以下是引用片段:</font><br>请输入引用片段</td></tr></table>');
		break;
	case "fly":
		addcontent(0,'FLY','/FLY');
		break;
	default:
		addcontent(0,'face','/face',what);
		break;
	}
	sel=null;
}

//显示模式框
function ShowDialog(url, width, height, optValidate)
{
	if(sCurrMode!="EDIT")
	{
		alert("该功能不能在“源码”和“文本”模式下使用。");
		return false;
	}
	eWebEditor.focus();
	var arr = showModalDialog(url, window, "dialogWidth:" + width + "px;dialogHeight:" + height + "px;help:no;scroll:no;status:no;");
	eWebEditor.focus();
}

//初始化
function Init_eWebEditor(html)
{
	edt_mode = 0;
	edt_initdone=1;
	
	edt_htmobj = document.getElementById("eWebEditor");
	edt_win = edt_htmobj.contentWindow;
	edt_doc = edt_htmobj.contentWindow.document;
	
	edt_win = edt_htmobj.contentWindow;
	edt_doc = edt_htmobj.contentWindow.document;
	
	edt_doc.designMode="On";
	edt_doc.open('text/html', 'replace');
	edt_doc.write(html);
	edt_doc.close();
	
	edt_doc.body.style.wordBreak = "break-all";
	edt_doc.body.style.border = '0px';
	edt_doc.body.style.leftmargin = '0px';
	edt_doc.body.style.fontSize = "14px";
	edt_doc.body.style.fontFamily = "宋体,Verdana,Arial";
	edt_doc.body.style.margin = "5px";
	//edt_doc.body.style.scrollbarBaseColor = "#D0D0C8";
	edt_doc.body.style.background = "#FFFFFF";
	edt_doc.body.style.lineHeight = "150%"; 
}

// 替换特殊字符
function HTMLEncode(text){
	text = text.replace(/&/g, "&amp;") ;
	text = text.replace(/"/g, "&quot;") ;
	text = text.replace(/</g, "&lt;") ;
	text = text.replace(/>/g, "&gt;") ;
	text = text.replace(/'/g, "&#146;") ;
	text = text.replace(/\ /g,"&nbsp;");
	text = text.replace(/\n/g,"<br>");
	text = text.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
	return text;
}

// 改变模式:代码、编辑
function setMode(NewMode){
	if (NewMode!=sCurrMode){
		if (NewMode=="TEXT"){
			if (!confirm("警告!切换到纯文本模式会丢失您所有的HTML格式,您确认切换吗?")){
					return false;
				}
		}
		
		var sBody = "";
		switch(sCurrMode){
		case "CODE":
			if (NewMode=="TEXT"){
				eWebEditor.document.body.innerHTML = eWebEditor.document.body.innerText;
				sBody = eWebEditor.document.body.innerText;
			}else{
				sBody = eWebEditor.document.body.innerText;
			}
			break;
		case "TEXT":
			sBody = eWebEditor.document.body.innerText;
			sBody = HTMLEncode(sBody);
			break;
		case "EDIT":
			if (NewMode=="TEXT"){
				sBody = eWebEditor.document.body.innerText;
			}else{
				sBody = eWebEditor.document.body.innerHTML;
			}
			break;
		}
		sCurrMode = NewMode;
		setHTML(sCurrMode,sBody);
	}
}

// 设置编辑器的内容
function setHTML(sCurrMode, html) {
	switch (sCurrMode){
	case "CODE":
		eWebEditor.document.body.innerText=html;
		break;
	case "TEXT":
		eWebEditor.document.body.innerText=html;
		break;
	case "EDIT":
		eWebEditor.document.body.innerHTML = html;
		break;
	}
}

// 清除WORD冗余格式
function cleanAndPaste( html ) {
	// Remove all SPAN tags
	html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
	// Remove Class attributes
	html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
	// Remove Style attributes
	html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
	// Remove Lang attributes
	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
	// Remove XML elements and declarations
	html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
	// Remove Tags with XML namespace declarations: <o:p></o:p>
	html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
	// Replace the &nbsp;
	html = html.replace(/&nbsp;/, " " );
	// Transform <P> to <DIV>
	var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;	// Different because of a IE 5.0 error
	html = html.replace( re, "<div$2</div>" ) ;
	
	return(html);
}

//替换字符
function replaceCharacters(conversionString,inChar,outChar)
{
  var convertedString = conversionString.split(inChar);
  convertedString = convertedString.join(outChar);
  return convertedString;
}

//返回编辑器内容
function GeteWebEditorHTML()
{
	var html = "";
	if(sCurrMode=="CODE")
		html = eWebEditor.document.body.innerText;
		else
			html = eWebEditor.document.body.innerHTML;
	var sPath = document.location.protocol + "//" + document.location.host + document.location.pathname;
	sPath = sPath.substr(0, sPath.length-8);
	html = replaceCharacters(html,sPath+"upfiles/edit/","upfiles/edit/");
	//html = cleanAndPaste(html);
	cObj.value = html;
}

⌨️ 快捷键说明

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