📄 freetextbox-mainscript.js
字号:
function FTB_HideToolbar(ftbName) {
return (eval(ftbName + "_HideToolbar"));
}
function FTB_UpdateToolbar(ftbName) {
return (eval(ftbName + "_UpdateToolbar"));
}
function FTB_GetHiddenField(ftbName) {
return document.getElementById(ftbName);
}
function FTB_GetIFrame(ftbName) {
if (isIE) {
return eval(ftbName + "_Editor");
//return document.getElementById(ftbName + "_Editor");
} else {
return document.getElementById(ftbName + "_Editor").contentWindow;
}
}
function FTB_GetToolbar(ftbName) {
return document.getElementById(ftbName + "_Toolbar");
}
function FTB_GetToolbarArray(ftbName) {
return eval(ftbName + "_ToolbarItems");
}
function FTB_GetCssID(ftbName) {
cssID = ftbName;
while (cssID.substring(0,1) == '_') {
cssID = cssID.substring(1);
}
return cssID;
}
/** END:PROPERTIES ********************/
/** START: BUTTONS **********************/
function FTB_SetButtonStyle(buttonTD,style,checkstyle) {
if (buttonTD == null) return;
if (buttonTD.className != checkstyle)
buttonTD.className = style;
}
function FTB_GetClassSubName(className) {
underscore = className.indexOf("_");
if (underscore < 0) return className;
return className.substring(underscore+1);
}
function FTB_ButtonOver(theTD,ftbName,imageOver,imageDown) {
FTB_SetButtonStyle(theTD,FTB_GetCssID(ftbName)+'_ButtonOver',null);
//if (eval(ftbName+'_OverImage').src != '')
// theTD.style.backgroundImage = "url(" + eval(ftbName+'_OverImage').src + ")";
if(imageOver == 1 & theTD.childNodes.length && theTD.childNodes[0].tagName == "IMG"){
oldSrc = theTD.childNodes[0].src;
if (oldSrc.indexOf('.over.') == -1) {
theTD.childNodes[0].src=oldSrc.substring(0, oldSrc.length-4) + ".over.gif";
}
}
//FTB_Event(ftbName);
}
function FTB_ButtonOut(theTD,ftbName,imageOver,imageDown) {
FTB_SetButtonStyle(theTD,FTB_GetCssID(ftbName)+'_ButtonNormal',null);
document.body.style.cursor = 'default';
theTD.style.backgroundImage='';
if(theTD.childNodes.length && theTD.childNodes[0].tagName == "IMG"){
oldSrc = theTD.childNodes[0].src;
if (oldSrc.indexOf('.over.') > 0) {
theTD.childNodes[0].src=oldSrc.substring(0, oldSrc.length-9) + ".gif";
}
if (oldSrc.indexOf('.down.') > 0) {
theTD.childNodes[0].src=oldSrc.substring(0, oldSrc.length-9) + ".gif";
}
}
//FTB_Event(ftbName);
}
function FTB_ButtonDown(theTD,ftbName,imageOver,imageDown) {
document.body.style.cursor = 'default';
FTB_SetButtonStyle(theTD,FTB_GetCssID(ftbName)+'_ButtonDown',null);
//if (eval(ftbName+'_DownImage').src != '')
// theTD.style.backgroundImage = "url(" + eval(ftbName+'_DownImage').src + ")";
if(imageDown == 1 && theTD.children.length && theTD.children[0].tagName == "IMG"){
oldSrc = theTD.children[0].src;
if (oldSrc.indexOf('.over.') > 0) {
theTD.children[0].src=oldSrc.substring(0, oldSrc.length-9) + ".down.gif";
}
}
//FTB_Event(ftbName);
}
function FTB_ButtonUp(theTD,ftbName,imageOver,imageDown) {
document.body.style.cursor = 'auto';
FTB_SetButtonStyle(theTD,FTB_GetCssID(ftbName)+'_ButtonOver',null);
//if (eval(ftbName+'_OverImage').src != '')
// theTD.style.backgroundImage = "url(" + eval(ftbName+'_OverImage').src + ")";
if(imageOver == 1 && theTD.children.length && theTD.children[0].tagName == "IMG"){
oldSrc = theTD.children[0].src;
if (oldSrc.indexOf('.over.') == -1) {
theTD.children[0].src=oldSrc.substring(0, oldSrc.length-4) + ".over.gif";
}
}
//FTB_Event(ftbName);
}
/** END:BUTTONS ********************/
/** START:TABS ********************/
function FTB_SetActiveTab(theTD,ftbName) {
parentTR = theTD.parentElement;
parentTR = document.getElementById(ftbName + "_TabRow");
selectedTab = 1;
totalButtons = parentTR.cells.length-1;
for (var i=1;i< totalButtons;i++) {
parentTR.cells[i].className = FTB_GetCssID(ftbName) + "_TabOffRight";
if (theTD == parentTR.cells[i]) { selectedTab = i; }
}
if (selectedTab==1) {
parentTR.cells[0].className = FTB_GetCssID(ftbName) + "_StartTabOn";
} else {
parentTR.cells[0].className = FTB_GetCssID(ftbName) + "_StartTabOff";
parentTR.cells[selectedTab-1].className = FTB_GetCssID(ftbName) + "_TabOffLeft";
}
theTD.className = FTB_GetCssID(ftbName) + "_TabOn";
}
function FTB_TabOver() {
document.body.style.cursor='default';
}
function FTB_TabOut() {
document.body.style.cursor='auto';
}
/** END:TABS ********************/
function FTB_Event(ftbName) {
editor = FTB_GetIFrame(ftbName);
htmlMode = FTB_IsHtmlMode(ftbName);
var _TAB = 9;
var _ENTER = 13;
var _QUOTE = 222;
var _OPENCURLY = '“';
var _CLOSECURLY = '”';
if (isIE) {
// TAB Functions
if (editor.event.keyCode == _TAB) {
var tabMode = FTB_TabMode(ftbName);
if (tabMode == "Disabled") {
editor.event.cancelBubble = true;
editor.event.returnValue = false;
}
if (tabMode == "InsertSpaces") {
FTB_InsertText(ftbName," ");
editor.event.cancelBubble = true;
editor.event.returnValue = false;
}
if (tabMode == "NextControl") {
// do nothing for TabMode.NextControl
}
}
// IE defaults to <p>, Mozilla to <br>
if (editor.event.keyCode == _ENTER) {
var breakMode = FTB_BreakMode(ftbName);
if (breakMode == "LineBreak" || editor.event.ctrlKey || htmlMode) {
var sel = editor.document.selection;
if (sel.type == 'Control') {
return;
}
var r = sel.createRange();
if ((!FTB_CheckTag(r.parentElement(),'LI'))&&(!FTB_CheckTag(r.parentElement(),'H'))) {
r.pasteHTML('<br>');
editor.event.cancelBubble = true;
editor.event.returnValue = false;
r.select();
r.collapse(false);
return false;
}
}
}
}
// update ToolbarItems only every 50 milliseconds b/c it is expensive
if (!htmlMode && FTB_UpdateToolbar(ftbName)) {
if (editor.timerToolbar) {
clearTimeout(editor.timerToolbar);
}
editor.timerToolbar = setTimeout(function() {
FTB_SetToolbarItems(ftbName);
editor.timerToolbar = null;
}, 50);
}
}
function FTB_SetToolbarItems(ftbName) {
editor = FTB_GetIFrame(ftbName);
htmlMode = FTB_IsHtmlMode(ftbName);
toolbarArray = FTB_GetToolbarArray(ftbName);
//document.getElementById("Debug").value = "";
if (toolbarArray) {
for (var i=0; i<toolbarArray.length; i++) {
toolbarItemID = toolbarArray[i][0];
toolbarItem = document.getElementById(toolbarItemID);
commandIdentifier = toolbarArray[i][1];
state = "";
try {
if (toolbarItemID.indexOf("Button") > -1) {
state = editor.document.queryCommandState(commandIdentifier);
FTB_SetButtonState(toolbarItemID,ftbName,state);
} else {
state = editor.document.queryCommandValue(commandIdentifier);
switch (commandIdentifier) {
case "backcolor":
if (isIE) {
state = FTB_GetHexColor(state);
} else {
if (state == "") state = "#FFFFFF";
}
break;
case "forecolor":
if (isIE) {
state = FTB_GetHexColor(state);
} else {
if (state == "") state = "#000000";
}
break;
case "formatBlock":
//document.getElementById("Debug").value += "****: " + state + "\n";
if (!isIE) {
if (state == "p" || state == "" || state == "<x>")
state = "<body>";
else
state = "<" + state + ">";
}
break;
}
//document.getElementById("Debug").value += commandIdentifier + ": " + state + "\n";
FTB_SetDropDownListState(toolbarItemID,state);
}
} catch(e) {
}
}
}
}
function FTB_GetHexColor(intColor) {
intColor = intColor.toString(16).toUpperCase();
while (intColor.length < 6) {
intColor = "0" + intColor;
}
return "#" + intColor.substring(4,6) + intColor.substring(2,4) + intColor.substring(0,2);
}
function FTB_SetDropDownListState(ddlName,value) {
ddl = document.getElementById(ddlName);
if (ddl) {
for (var i=0; i<ddl.options.length; i++) {
if (ddl.options[i].text == value || ddl.options[i].value == value) {
ddl.options.selectedIndex = i;
return;
}
}
}
}
function FTB_SetButtonState(buttonName,ftbName,value) {
buttonTD = document.getElementById(buttonName);
if (buttonTD) {
if (value) {
FTB_ButtonOver(buttonTD,ftbName,0,0);
} else {
FTB_ButtonOut(buttonTD,ftbName,0,0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -