📄 script.js.php
字号:
// remove font and span tags
if (els[i].tagName != null && (els[i].tagName == "FONT" || els[i].tagName == "SPAN" || els[i].tagName == "DIV"))
{
els[i].removeNode(false);
found = true;
}
}
}
// remove styles
var els = window.frames[editor+'_rEdit'].document.body.all;
for (var i=0; i<els.length; i++)
{
// remove style and class attributes from all tags
els[i].removeAttribute("className",0);
els[i].removeAttribute("style",0);
}
}
SPAW_update_toolbar(editor, true);
} // SPAW_cleanup_click
// toggle borders worker function
function SPAW_toggle_borders(editor, root, toggle)
{
// get toggle mode (on/off)
var toggle_mode = toggle;
if (toggle == null)
{
var tgl_borders = document.getElementById("SPAW_"+editor+"_borders");
if (tgl_borders != null)
{
toggle_mode = tgl_borders.value;
}
else
{
toggle_mode = "on"
}
}
var tbls = new Array();
if (root.tagName == "TABLE")
{
tbls[0] = root;
}
else
{
// get all tables starting from root
tbls = root.getElementsByTagName("TABLE");
}
var tbln = 0;
if (tbls != null) tbln = tbls.length;
for (var ti = 0; ti<tbln; ti++)
{
if ((tbls[ti].style.borderWidth == 0 || tbls[ti].style.borderWidth == "0px") &&
(tbls[ti].border == 0 || tbls[ti].border == "0px") &&
(toggle_mode == "on"))
{
tbls[ti].runtimeStyle.borderWidth = "1px";
tbls[ti].runtimeStyle.borderStyle = "dashed";
tbls[ti].runtimeStyle.borderColor = "#aaaaaa";
} // no border
else
{
tbls[ti].runtimeStyle.borderWidth = "";
tbls[ti].runtimeStyle.borderStyle = "";
tbls[ti].runtimeStyle.borderColor = "";
}
var cls = tbls[ti].cells;
// loop through cells
for (var ci = 0; ci<cls.length; ci++)
{
if ((tbls[ti].style.borderWidth == 0 || tbls[ti].style.borderWidth == "0px") &&
(tbls[ti].border == 0 || tbls[ti].border == "0px") &&
(cls[ci].style.borderWidth == 0 || cls[ci].style.borderWidth == "0px") &&
(toggle_mode == "on"))
{
cls[ci].runtimeStyle.borderWidth = "1px";
cls[ci].runtimeStyle.borderStyle = "dashed";
cls[ci].runtimeStyle.borderColor = "#aaaaaa";
}
else
{
cls[ci].runtimeStyle.borderWidth = "";
cls[ci].runtimeStyle.borderStyle = "";
cls[ci].runtimeStyle.borderColor = "";
}
} // cells loop
} // tables loop
} // SPAW_toggle_borders
// toggle borders click event
function SPAW_toggle_borders_click(editor, sender)
{
// get current toggle mode (on/off)
var toggle_mode;
var tgl_borders = document.getElementById("SPAW_"+editor+"_borders");
if (tgl_borders != null)
{
toggle_mode = tgl_borders;
// switch mode
if (toggle_mode.value == "on")
{
toggle_mode.value = "off";
}
else
{
toggle_mode.value = "on";
}
// call worker function
SPAW_toggle_borders(editor,this[editor+'_rEdit'].document.body, toggle_mode.value);
}
SPAW_update_toolbar(editor, true);
} // SPAW_toggle_borders_click
// returns base toolbar image name
function SPAW_base_image_name(ctrl)
{
var imgname = ctrl.src.substring(0,ctrl.src.lastIndexOf("/"))+"/tb_"+ctrl.id.substr(ctrl.id.lastIndexOf("_tb_")+4, ctrl.id.length);
return imgname;
}
// update toolbar if cursor moved or some event happened
function SPAW_onkeyup(editor)
{
var eobj = window.frames[editor+'_rEdit']; // editor iframe
if (eobj.event.ctrlKey || (eobj.event.keyCode >= 33 && eobj.event.keyCode<=40))
{
SPAW_update_toolbar(editor, false);
}
}
var spaw_context_html = "";
// update active toolbar state
function SPAW_update_toolbar(editor, force)
{
//window.frames[editor+'_rEdit'].focus();
var pt = SPAW_getParentTag(editor);
if (pt)
{
if (pt.outerHTML == spaw_context_html && !force)
{
return;
}
else
{
spaw_context_html = pt.outerHTML;
}
}
// button sets
table_row_items = [
"table_row_insert",
"table_row_delete"
];
table_cell_items = [
"table_cell_prop",
"table_column_insert",
"table_column_delete",
"table_cell_merge_right",
"table_cell_merge_down",
"table_cell_split_horizontal",
"table_cell_split_vertical"
];
table_obj_items = [
"table_prop"
];
img_obj_items = [
"image_prop"
];
standard_cmd_items = [ // command, control id
["cut", "cut"],
["copy", "copy"],
["paste", "paste"],
["undo", "undo"],
["redo", "redo"],
["bold", "bold"],
["italic", "italic"],
["underline", "underline"],
["justifyleft", "left"],
["justifycenter", "center"],
["justifyright", "right"],
["justifyfull", "justify"],
["indent", "indent"],
["outdent", "unindent"],
["forecolor", "fore_color"],
["backcolor", "bg_color"],
["insertorderedlist", "ordered_list"],
["insertunorderedlist", "bulleted_list"],
["createlink", "hyperlink"],
["createlink", "internal_link"],
["createlink", "image_popup"],
["inserthorizontalrule","hr"],
["subscript", "subscript"],
["superscript", "superscript"]
];
togglable_items = [ // command, control id
["bold", "bold"],
["italic", "italic"],
["underline", "underline"],
["justifyleft", "left"],
["justifycenter", "center"],
["justifyright", "right"],
["justifyfull", "justify"],
["subscript", "subscript"],
["superscript", "superscript"]
];
standard_dropdowns = [ // command, control id
["fontname", "font"],
["fontsize", "fontsize"],
["formatblock", "paragraph"]
];
// proceed only if active toolbar is enabled
if (!spaw_active_toolbar) return;
//window.frames[editor+'_rEdit'].focus();
// get object references
var eobj = window.frames[editor+'_rEdit']; // editor iframe
var edoc = eobj.document; // editor docutment
// enable image insert
SPAW_toggle_tbi(editor,"image_insert", true);
// enable table insert
SPAW_toggle_tbi(editor,"table_create", true);
// toggle table buttons
// get table
var ct = SPAW_getTable(editor);
if (ct)
{
// table found
// enable table properties
SPAW_toggle_tb_items(editor,table_obj_items, true);
// get table row
var cr = SPAW_getTR(editor);
if (cr)
{
// enable table row features
SPAW_toggle_tb_items(editor,table_row_items, true);
// get table cell
var cd = SPAW_getTD(editor);
if (cd)
{
// enable cell features
SPAW_toggle_tb_items(editor,table_cell_items, true);
}
else
{
// disable cell features
SPAW_toggle_tb_items(editor,table_cell_items, false);
// disable image insert
SPAW_toggle_tbi(editor,"image_insert", false);
}
}
else
{
// disable table row and cell features
SPAW_toggle_tb_items(editor,table_cell_items, false);
SPAW_toggle_tb_items(editor,table_row_items, false);
// disable image insert
SPAW_toggle_tbi(editor,"image_insert", false);
}
}
else
{
// disable all available table related buttons
SPAW_toggle_tb_items(editor,table_obj_items, false);
SPAW_toggle_tb_items(editor,table_row_items, false);
SPAW_toggle_tb_items(editor,table_cell_items, false);
}
// end table buttons
// image buttons
// get image
var im = SPAW_getImg(editor);
if (im)
{
// enable image buttons
SPAW_toggle_tb_items(editor,img_obj_items, true);
// disable table insert
SPAW_toggle_tbi(editor,"table_create", false);
}
else
{
// disable image buttons
SPAW_toggle_tb_items(editor,img_obj_items, false);
}
// end image buttons
// set state and enable/disable standard command buttons
for (var i=0; i<togglable_items.length; i++)
{
SPAW_toggle_tbi_state(editor, togglable_items[i][1], edoc.queryCommandState(togglable_items[i][0]));
}
for (var i=0; i<standard_cmd_items.length; i++)
{
SPAW_toggle_tbi(editor, standard_cmd_items[i][1], edoc.queryCommandEnabled(standard_cmd_items[i][0]));
}
// set state of toggle borders button
if (document.all["SPAW_"+editor+"_borders"].value == "on")
{
SPAW_toggle_tbi_state(editor, "toggle_borders", true);
}
else
{
SPAW_toggle_tbi_state(editor, "toggle_borders", false);
}
// dropdowns
for (var i=0; i<standard_dropdowns.length; i++)
{
SPAW_toggle_tbi_dropdown(editor, standard_dropdowns[i][1], edoc.queryCommandValue(standard_dropdowns[i][0]));
}
// style dropdown
var pt = SPAW_getParentTag(editor);
SPAW_toggle_tbi_dropdown(editor, "style", pt.className);
}
// enable/disable toolbar item
function SPAW_toggle_tb_items(editor, items, enable)
{
for (var i=0; i<items.length; i++)
{
SPAW_toggle_tbi(editor, items[i], enable);
}
}
// enable/disable toolbar item
function SPAW_toggle_tbi(editor, item, enable)
{
if (document.all["SPAW_"+editor+"_tb_"+item])
{
var ctrl = document.all["SPAW_"+editor+"_tb_"+item];
if (enable)
{
if (ctrl)
{
ctrl.disabled = false;
eval("SPAW_"+document.all["SPAW_"+editor+"_theme"].value+"_bt_out(ctrl);");
}
}
else
{
if (ctrl)
{
ctrl.disabled = true;
eval("SPAW_"+document.all["SPAW_"+editor+"_theme"].value+"_bt_off(ctrl);");
}
}
}
}
// set state of the toolbar item
function SPAW_toggle_tbi_state(editor, item, state)
{
if (document.all["SPAW_"+editor+"_tb_"+item])
{
var ctrl = document.all["SPAW_"+editor+"_tb_"+item];
ctrl.setAttribute("spaw_state",state)
eval("SPAW_"+document.all["SPAW_"+editor+"_theme"].value+"_bt_out(ctrl);");
}
}
// set dropdown value
function SPAW_toggle_tbi_dropdown(editor, item, value)
{
if (document.all["SPAW_"+editor+"_tb_"+item])
{
var ctrl = document.all["SPAW_"+editor+"_tb_"+item];
ctrl.options[0].selected = true;
for (var ii=0; ii<ctrl.options.length; ii++)
{
if (ctrl.options[ii].value == value)
{
ctrl.options[ii].selected = true;
}
else
{
ctrl.options[ii].selected = false;
}
}
}
}
function SPAW_superscript_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('superscript', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_subscript_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('subscript', false, null);
SPAW_update_toolbar(editor, true);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -