📄 script.js.php
字号:
// control registration array
var spaw_editors = new Array();
// returns true if editor is already registered
function SPAW_editor_registered(editor)
{
var found = false;
for(var i=0;i<spaw_editors.length;i++)
{
if (spaw_editors[i] == editor)
{
found = true;
break;
}
}
return(found);
}
// onsubmit
function SPAW_UpdateFields()
{
for (var i=0; i<spaw_editors.length; i++)
{
SPAW_updateField(spaw_editors[i], null);
}
}
// adds event handler for the form to update hidden fields
function SPAW_addOnSubmitHandler(editor)
{
thefield = SPAW_getFieldByEditor(editor, null);
var sTemp = "";
oForm = document.all[thefield].form;
if(oForm.onsubmit != null) {
sTemp = oForm.onsubmit.toString();
iStart = sTemp.indexOf("{") + 2;
sTemp = sTemp.substr(iStart,sTemp.length-iStart-2);
}
if (sTemp.indexOf("SPAW_UpdateFields();") == -1)
{
oForm.onsubmit = new Function("SPAW_UpdateFields();" + sTemp);
}
}
// editor initialization
function SPAW_editorInit(editor, css_stylesheet, direction)
{
if (this[editor+'_rEdit'].document.designMode != 'on')
{
this[editor+'_rEdit'].document.designMode = 'On';
}
// check if the editor completely loaded and schedule to try again if not
if (this[editor+'_rEdit'].document.readyState != 'complete')
{
setTimeout(function(){SPAW_editorInit(editor, css_stylesheet, direction);},20);
return;
}
// register the editor
// prevent from executing twice on the same editor
if (!SPAW_editor_registered(editor))
{
spaw_editors[spaw_editors.length] = editor;
}
// add on submit handler
SPAW_addOnSubmitHandler(editor);
if (this[editor+'_rEdit'].document.readyState == 'complete')
{
this[editor+'_rEdit'].document.createStyleSheet(css_stylesheet);
this[editor+'_rEdit'].document.body.dir = direction;
this[editor+'_rEdit'].document.body.innerHTML = document.all[editor].value;
SPAW_toggle_borders(editor,this[editor+'_rEdit'].document.body,null);
// hookup active toolbar related events
this[editor+'_rEdit'].document.onkeyup = function() { SPAW_onkeyup(editor); }
this[editor+'_rEdit'].document.onmouseup = function() { SPAW_update_toolbar(editor, true); }
// initialize toolbar
spaw_context_html = "";
SPAW_update_toolbar(editor, true);
}
}
function SPAW_showColorPicker(editor,curcolor) {
return showModalDialog('<?php echo $GLOBALS["spaw_dir"]?>dialogs/colorpicker.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, curcolor,
'dialogHeight:250px; dialogWidth:366px; resizable:no; status:no');
}
function SPAW_bold_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('bold', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_italic_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('italic', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_underline_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('underline', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_left_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('justifyleft', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_center_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('justifycenter', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_right_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('justifyright', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_justify_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('justifyfull', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_ordered_list_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('insertorderedlist', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_bulleted_list_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('insertunorderedlist', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_fore_color_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var fCol = SPAW_showColorPicker(editor,null);
if(fCol != null)
this[editor+'_rEdit'].document.execCommand('forecolor', false, fCol);
SPAW_update_toolbar(editor, true);
}
function SPAW_bg_color_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var bCol = SPAW_showColorPicker(editor,null);
if(bCol != null)
this[editor+'_rEdit'].document.execCommand('backcolor', false, bCol);
SPAW_update_toolbar(editor, true);
}
/*
// using standard IE link dialog
function SPAW_hyperlink_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var l = this[editor+'_rEdit'].document.execCommand('createlink');
SPAW_update_toolbar(editor, true);
}
*/
function SPAW_getA(editor)
{
var aControl = window.frames[editor+'_rEdit'].document.selection.createRange();
if (window.frames[editor+'_rEdit'].document.selection.type != "Control")
{
aControl = aControl.parentElement();
}
else
{
aControl = aControl(0);
}
while ((aControl.tagName != 'A') && (aControl.tagName != 'BODY'))
{
aControl = aControl.parentElement;
}
if (aControl.tagName == 'A')
return(aControl);
else
return(null);
}
function SPAW_hyperlink_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var a = SPAW_getA(editor);
var aProps = {};
// get anchors on the page
aProps.anchors = new Array();
var links = this[editor+'_rEdit'].document.getElementsByTagName('A');
var aln = 0;
if (links != null) aln = links.length;
for (var i=0;i<aln;i++)
{
if (links[i].name != null && links[i].name != '')
aProps.anchors[aProps.anchors.length] = links[i].name;
}
if (a)
{
// edit hyperlink
aProps.href = SPAW_stripAbsoluteUrl(editor, a.href);
aProps.name = a.name;
aProps.target = a.target;
aProps.title = a.title;
var naProps = showModalDialog('<?php echo $GLOBALS["spaw_dir"]?>dialogs/a.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, aProps,
'dialogHeight:220px; dialogWidth:366px; resizable:no; status:no');
if (naProps)
{
if (!naProps.href && !naProps.name)
{
// remove hyperlink
a.outerHTML = a.innerHTML;
}
else
{
// set link properties
if (naProps.href)
a.href = naProps.href;
else
a.removeAttribute('href',0);
if (naProps.name)
a.name = naProps.name;
else
a.removeAttribute('name',0);
if (naProps.target && naProps.target!='_self')
a.target = naProps.target;
else
a.removeAttribute('target',0);
if (naProps.title)
a.title = naProps.title;
else
a.removeAttribute('title',0);
a.removeAttribute('onclick',0);
}
}
}
else
{
// new hyperlink
var naProps = showModalDialog('<?php echo $GLOBALS["spaw_dir"]?>dialogs/a.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, aProps,
'dialogHeight:220px; dialogWidth:366px; resizable:no; status:no');
if (naProps)
{
var a;
if (naProps.name)
{
a = document.createElement('<A NAME="'+naProps.name+'"></A>');
}
else
{
a = document.createElement('A');
}
if (naProps.href)
a.href = naProps.href;
if (naProps.target && naProps.target!='_self')
a.target = naProps.target;
if (naProps.title)
a.title = naProps.title;
if (window.frames[editor+'_rEdit'].document.selection.type == "Control")
{
var selection = window.frames[editor+'_rEdit'].document.selection.createRange();
a.innerHTML = selection(0).outerHTML;
selection(0).outerHTML = a.outerHTML;
}
else
{
var selection = window.frames[editor+'_rEdit'].document.selection.createRange();
if (selection.htmlText == '')
a.innerHTML = (a.href && a.href!='')?a.href:a.name;
else
a.innerHTML = selection.htmlText;
selection.pasteHTML(a.outerHTML);
}
}
}
SPAW_update_toolbar(editor, true);
}
function SPAW_internal_link_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var a = SPAW_getA(editor);
if (a)
{
// edit hyperlink
var aProps = {};
aProps.href = SPAW_stripAbsoluteUrl(editor, a.href);
aProps.name = a.name;
aProps.target = a.target;
aProps.title = a.title;
aProps.description = a.innerHTML;
var naProps = showModalDialog('<?php echo $spaw_internal_link_script?>?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, aProps,
'dialogHeight:220px; dialogWidth:366px; resizable:yes; status:no');
if (naProps)
{
if (naProps.href)
a.href = naProps.href;
else
a.removeAttribute('href',0);
if (naProps.name)
a.name = naProps.name;
else
a.removeAttribute('name',0);
if (naProps.target && naProps.target!='_self')
a.target = naProps.target;
else
a.removeAttribute('target',0);
if (naProps.title)
a.title = naProps.title;
else
a.removeAttribute('title',0);
if (naProps.description)
a.innerHTML = naProps.description;
}
}
else
{
// new hyperlink
var naProps = showModalDialog('<?php echo $spaw_internal_link_script?>?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, null,
'dialogHeight:220px; dialogWidth:366px; resizable:no; status:no');
if (naProps)
{
var a;
if (naProps.name)
{
a = document.createElement('<A NAME="'+naProps.name+'"></A>');
}
else
{
a = document.createElement('A');
}
if (naProps.href)
a.href = naProps.href;
if (naProps.target && naProps.target!='_self')
a.target = naProps.target;
if (naProps.title)
a.title = naProps.title;
if (window.frames[editor+'_rEdit'].document.selection.type == "Control")
{
var selection = window.frames[editor+'_rEdit'].document.selection.createRange();
a.innerHTML = selection(0).outerHTML;
selection(0).outerHTML = a.outerHTML;
}
else
{
var selection = window.frames[editor+'_rEdit'].document.selection.createRange();
if (naProps.description)
{
a.innerHTML = naProps.description;
}
else
{
if (selection.htmlText == '')
a.innerHTML = (a.href)?a.href:a.name;
else
a.innerHTML = selection.htmlText;
}
selection.pasteHTML(a.outerHTML);
}
}
}
SPAW_update_toolbar(editor, true);
}
function SPAW_image_insert_click(editor, sender)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -