📄 initial.js
字号:
var sCurrMode = null;
var bEditMode = null;
var oLinkField = null;
var sBaseUrl = document.location.protocol + '//' + document.location.host ;
var BrowserInfo = new Object() ;
BrowserInfo.MajorVer = navigator.appVersion.match(/MSIE (.)/)[1] ;
BrowserInfo.MinorVer = navigator.appVersion.match(/MSIE .\.(.)/)[1] ;
BrowserInfo.IsIE55OrMore = BrowserInfo.MajorVer >= 6 || ( BrowserInfo.MajorVer >= 5 && BrowserInfo.MinorVer >= 5 ) ;
var bInitialized = false;
function document.onreadystatechange()
{
if (document.readyState!="complete") return;
if (bInitialized) return;
bInitialized = true;
var i,j,s,curr;
for (i=0; i<document.body.all.length;i++)
{
curr=document.body.all[i];
if (curr.className == "Ico") InitBtn(curr);
}
setMode(ModeEdit.value);
SuperWebEdit.focus();
}
// 初始化一个工具栏上的按钮
function InitBtn(btn)
{
btn.onmouseover = BtnMouseOver;
btn.onmouseout = BtnMouseOut;
btn.onmousedown = BtnMouseDown;
btn.onmouseup = BtnMouseUp;
btn.ondragstart = YCancelEvent;
btn.onselectstart = YCancelEvent;
btn.onselect = YCancelEvent;
btn.YUSERONCLICK = btn.onclick;
return true;
}
function YCancelEvent()
{
event.returnValue=false;
event.cancelBubble=true;
return false;
}
function BtnMouseOver()
{
var image = event.srcElement;
image.className = "BtnMouseOverUp";
event.cancelBubble = true;
}
function BtnMouseOut()
{
var image = event.srcElement;
image.className = "Ico";
event.cancelBubble = true;
}
function BtnMouseDown()
{
var image = event.srcElement;
image.className = "IcoDown";
event.cancelBubble = true;
event.returnValue=false;
return false;
}
function BtnMouseUp()
{
var image = event.srcElement;
image.className = "Ico";
event.cancelBubble = true;
return false;
}
// 取剪粘板中的HTML格式数据
function GetClipboardHTML()
{
var oDiv = document.getElementById("SuperWebEdit_Temp_HTML")
oDiv.innerHTML = "" ;
alert(oDiv);
return;
var oTextRange = document.body.createTextRange() ;
oTextRange.moveToElementText(oDiv) ;
oTextRange.execCommand("Paste") ;
var sData = oDiv.innerHTML ;
oDiv.innerHTML = "" ;
return sData ;
}
// 粘贴时自动检测是否来源于Word格式
function onPaste()
{
if (sCurrMode=="VIEW") return false;
if (sCurrMode=="EDIT")
{
if (config.AutoDetectPasteFromWord && BrowserInfo.IsIE55OrMore)
{
var sHTML = GetClipboardHTML() ;
var re = /<\w[^>]* class="?MsoNormal"?/gi ;
if ( re.test(sHTML))
{
if ( confirm( "你要粘贴的内容好象是从Word中拷出来的,是否要先清除Word格式再粘贴?" ) )
{
cleanAndPaste( sHTML ) ;
return false ;
}
}
}
else
{
return true ;
}
}
else
{
SuperWebEdit.document.selection.createRange().pasteHTML(HTMLEncode( clipboardData.getData("Text"))) ;
return false;
}
}
// 快捷键
function onKeyPress(event)
{
if ((sCurrMode=="EDIT")||(sCurrMode=="VIEW"))
{
return true;
}
if (event.keyCode==13)
{
var sel = SuperWebEdit.document.selection.createRange();
sel.pasteHTML("<BR>");
event.cancelBubble = true;
event.returnValue = false;
sel.select();
sel.moveEnd("character", 1);
sel.moveStart("character", 1);
sel.collapse(false);
return false;
}
}
// 在当前文档位置插入.
function insertHTML(html)
{
if (isModeView()) return false;
if (SuperWebEdit.document.selection.type.toLowerCase() != "none")
{
SuperWebEdit.document.selection.clear() ;
}
if (sCurrMode!="EDIT")
{
html=HTMLEncode(html);
}
SuperWebEdit.document.selection.createRange().pasteHTML(html) ;
}
// 设置编辑器的内容
function setHTML(html)
{
if (isModeView()) return false;
ContentEdit.value = html;
if(sCurrMode=="EDIT")
{
SuperWebEdit.document.body.innerHTML = html;
}
else
{
SuperWebEdit.document.body.innerText = html;
}
}
// 取编辑器的内容
function getHTML()
{
var html;
if((sCurrMode=="EDIT")||(sCurrMode=="VIEW"))
{
html = SuperWebEdit.document.body.innerHTML;
}
else
{
html = SuperWebEdit.document.body.innerText;
}
if (sCurrMode!="TEXT")
{
if (config.BaseUrl)
{
var re = new RegExp(sBaseUrl.replace(/\//,"\/"),"gi");
html = html.replace(re,"");
}
if ((html.toLowerCase()=="<p> </p>")||(html.toLowerCase()=="<p></p>"))
{
html = "";
}
}
return html;
}
// 在尾部追加内容
function appendHTML(html)
{
if (isModeView()) return false;
if(sCurrMode=="EDIT")
{
SuperWebEdit.document.body.innerHTML += html;
}
else
{
SuperWebEdit.document.body.innerText += html;
}
}
// 检测当前是否允许编辑
function validateMode()
{
if (sCurrMode=="EDIT") return true;
alert("需转换为编辑状态后才能使用编辑功能!");
SuperWebEdit.focus();
return false;
}
// 检测当前是否在预览模式
function isModeView()
{
if (sCurrMode=="VIEW")
{
alert("预览时不允许设置编辑区内容。");
return true;
}
return false;
}
// 确保焦点在 SuperWebEdit 内
function VerifyFocus()
{
if ( SuperWebEdit )
SuperWebEdit.focus();
}
function setMode(NewMode)
{
if (NewMode!=sCurrMode)
{
if (!BrowserInfo.IsIE55OrMore)
{
if ((NewMode=="CODE") || (NewMode=="EDIT") || (NewMode=="VIEW"))
{
alert("HTML编辑模式需要IE5.5版本以上的支持!");
return false;
}
}
if (NewMode=="TEXT")
{
if (sCurrMode==ModeEdit.value)
{
if (!confirm("警告!切换到纯文本模式会丢失您所有的HTML格式,您确认切换吗?"))
{
return false;
}
}
}
var sBody = "";
switch(sCurrMode)
{
case "CODE":
if (NewMode=="TEXT")
{
SuperWebEdit_Temp_HTML.innerHTML = SuperWebEdit.document.body.innerText;
sBody = SuperWebEdit_Temp_HTML.innerText;
}
else
{
sBody = SuperWebEdit.document.body.innerText;
}
break;
case "TEXT":
sBody = SuperWebEdit.document.body.innerText;
sBody = HTMLEncode(sBody);
break;
case "EDIT":
case "VIEW":
if (NewMode=="TEXT")
{
sBody = SuperWebEdit.document.body.innerText;
}
else
{
sBody = SuperWebEdit.document.body.innerHTML;
}
break;
default:
sBody = unescape(ContentEdit.value);
break;
}
// 换图片
try{
document.all["SuperWebEdit_CODE"].className = "StatusBarBtnOff";
document.all["SuperWebEdit_EDIT"].className = "StatusBarBtnOff";
document.all["SuperWebEdit_TEXT"].className = "StatusBarBtnOff";
document.all["SuperWebEdit_VIEW"].className = "StatusBarBtnOff";
document.all["SuperWebEdit_"+NewMode].className = "StatusBarBtnOn";
}
catch(e)
{
}
// 换内容
switch (NewMode)
{
case "CODE":
SuperWebEdit.document.designMode="On";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -