script_gecko.js.php
来自「架設ROSE私服必備之物 ROSE數據庫」· PHP 代码 · 共 1,503 行 · 第 1/4 页
PHP
1,503 行
// switch editors
document.getElementById(editor+"_rEdit").style.display = "none";
document.getElementById(editor).style.display = "";
//document.getElementById(editor).focus();
//SPAW_update_toolbar(editor, true);
}
function SPAW_getFieldByEditor(editor, field)
{
var thefield;
// get field by editor id
if (field == null || field == "")
{
thefield = document.getElementById(editor).id;
}
else
{
thefield=field;
}
return thefield;
}
function SPAW_stripAbsoluteUrl(url)
{
}
function SPAW_stripAbsoluteUrlFromImg(url)
{
}
function SPAW_getHtmlValue(editor, thefield)
{
// temporary simplified
return document.getElementById(editor+"_rEdit").contentDocument.body.innerHTML;
}
function SPAW_updateField(editor, field)
{
var thefield = SPAW_getFieldByEditor(editor, field);
var htmlvalue = SPAW_getHtmlValue(editor, thefield);
if (document.getElementById(thefield).value != htmlvalue)
{
// something changed
document.getElementById(thefield).value = htmlvalue;
}
}
function SPAW_confirm(editor,block,message)
{
}
// cleanup html
function SPAW_cleanup_click(editor, sender)
{
} // SPAW_cleanup_click
// toggle borders worker function
function SPAW_toggle_borders(editor, root, toggle)
{
} // SPAW_toggle_borders
// toggle borders click event
function SPAW_toggle_borders_click(editor, sender)
{
} // 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, e)
{
if (e.ctrlKey || (e.keyCode >= 33 && e.keyCode<=40))
{
SPAW_update_toolbar(editor, false);
}
}
var spaw_context_html = null;
// update active toolbar state
function SPAW_update_toolbar(editor, force)
{
document.getElementById(editor+'_rEdit').contentWindow.focus();
var pt = SPAW_getParentTag(editor);
if (pt)
{
if (pt.outerHTML == pt && !force)
{
return;
}
else
{
spaw_context_html = pt;
}
}
// 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 = document.getElementById(editor+'_rEdit'); // editor iframe
var edoc = eobj.contentDocument; // 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++)
{
try
{
SPAW_toggle_tbi_state(editor, togglable_items[i][1], edoc.queryCommandState(togglable_items[i][0]));
}
catch (excp) {}
}
for (var i=0; i<standard_cmd_items.length; i++)
{
try
{
SPAW_toggle_tbi(editor, standard_cmd_items[i][1], edoc.queryCommandEnabled(standard_cmd_items[i][0]));
}
catch (excp) {}
}
// set state of toggle borders button
if (document.getElementById("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++)
{
try
{
SPAW_toggle_tbi_dropdown(editor, standard_dropdowns[i][1], edoc.queryCommandValue(standard_dropdowns[i][0]));
}
catch (excp) {}
}
// style dropdown
var pt = SPAW_getParentTag(editor);
if (pt)
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.getElementById("SPAW_"+editor+"_tb_"+item))
{
var ctrl = document.getElementById("SPAW_"+editor+"_tb_"+item);
if (enable)
{
if (ctrl)
{
ctrl.disabled = false;
eval("SPAW_"+document.getElementById("SPAW_"+editor+"_theme").value+"_bt_out(ctrl);");
}
}
else
{
if (ctrl)
{
ctrl.disabled = true;
eval("SPAW_"+document.getElementById("SPAW_"+editor+"_theme").value+"_bt_off(ctrl);");
}
}
}
}
// set state of the toolbar item
function SPAW_toggle_tbi_state(editor, item, state)
{
if (document.getElementById("SPAW_"+editor+"_tb_"+item))
{
var ctrl = document.getElementById("SPAW_"+editor+"_tb_"+item);
ctrl.setAttribute("spaw_state",state)
eval("SPAW_"+document.getElementById("SPAW_"+editor+"_theme").value+"_bt_out(ctrl);");
}
}
// set dropdown value
function SPAW_toggle_tbi_dropdown(editor, item, value)
{
if (document.getElementById("SPAW_"+editor+"_tb_"+item))
{
var ctrl = document.getElementById("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)
{
var ed = document.getElementById(editor+'_rEdit');
ed.contentDocument.execCommand('superscript', false, null);
ed.contentWindow.focus();
SPAW_update_toolbar(editor, true);
}
function SPAW_subscript_click(editor, sender)
{
var ed = document.getElementById(editor+'_rEdit');
ed.contentDocument.execCommand('subscript', false, null);
ed.contentWindow.focus();
SPAW_update_toolbar(editor, true);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?