📄 edit.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> ");
str = str.replace(/\n/gim,"<br>");
str = str.replace(/\ \ \ /gim," ");
str = str.replace(/\ \ /gim," ");
str = str.replace(/\t/gim," ");
if(str.substr(0,1) == " ")str = " " + 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, "&") ;
text = text.replace(/"/g, """) ;
text = text.replace(/</g, "<") ;
text = text.replace(/>/g, ">") ;
text = text.replace(/'/g, "’") ;
text = text.replace(/\ /g," ");
text = text.replace(/\n/g,"<br>");
text = text.replace(/\t/g," ");
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
html = html.replace(/ /, " " );
// 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 + -