script.js.php
来自「PHP 建站工具,CMS系统,类似与oscommerce」· PHP 代码 · 共 1,627 行 · 第 1/4 页
PHP
1,627 行
// control registration array
var spaw_editors = new Array();
// returns true if editor is already registered
function SPAW_editor_registered(editor)
{
var found = false;
for(i=0;i<spaw_editors.lenght;i++)
{
if (spaw_editors[i] == editor)
{
found = true;
break;
}
}
return(found);
}
// onsubmit
function SPAW_UpdateFields()
{
for (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)
{
// prevent from executing twice on the same editor
if (!SPAW_editor_registered(editor))
{
// check if the editor completely loaded and schedule to try again if not
if (document.readyState != 'complete')
{
setTimeout(function(){SPAW_editorInit(editor, css_stylesheet, direction);},20);
return;
}
this[editor+'_rEdit'].document.designMode = 'On';
// register the 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 $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_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);
}
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_image_insert_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var imgSrc = showModalDialog('<?php echo $spaw_dir?>dialogs/img_library.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, '',
'dialogHeight:420px; dialogWidth:420px; resizable:no; status:no');
if(imgSrc != null)
this[editor+'_rEdit'].document.execCommand('insertimage', false, imgSrc);
SPAW_update_toolbar(editor, true);
}
function SPAW_image_prop_click(editor, sender)
{
var im = SPAW_getImg(editor); // current cell
if (im)
{
var iProps = {};
iProps.src = im.src;
iProps.alt = im.alt;
iProps.width = (im.style.width)?im.style.width:im.width;
iProps.height = (im.style.height)?im.style.height:im.height;
iProps.border = im.border;
iProps.align = im.align;
iProps.hspace = im.hspace;
iProps.vspace = im.vspace;
var niProps = showModalDialog('<?php echo $spaw_dir?>dialogs/img.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, iProps,
'dialogHeight:200px; dialogWidth:366px; resizable:no; status:no');
if (niProps)
{
im.src = (niProps.src)?niProps.src:'';
if (niProps.alt) {
im.alt = niProps.alt;
}
else
{
im.removeAttribute("alt");
}
im.align = (niProps.align)?niProps.align:'';
im.width = (niProps.width)?niProps.width:'';
//im.style.width = (niProps.width)?niProps.width:'';
im.height = (niProps.height)?niProps.height:'';
//im.style.height = (niProps.height)?niProps.height:'';
if (niProps.border) {
im.border = niProps.border;
}
else
{
im.removeAttribute("border");
}
if (niProps.hspace) {
im.hspace = niProps.hspace;
}
else
{
im.removeAttribute("hspace");
}
if (niProps.vspace) {
im.vspace = niProps.vspace;
}
else
{
im.removeAttribute("vspace");
}
}
//SPAW_updateField(editor,"");
} // if im
SPAW_update_toolbar(editor, true);
}
function SPAW_hr_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('inserthorizontalrule', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_copy_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('copy', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_paste_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('paste', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_cut_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('cut', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_delete_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('delete', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_indent_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('indent', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_unindent_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('outdent', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_undo_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('undo','',null);
SPAW_update_toolbar(editor, true);
}
function SPAW_redo_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('redo', false, null);
SPAW_update_toolbar(editor, true);
}
function SPAW_getParentTag(editor)
{
var trange = this[editor+'_rEdit'].document.selection.createRange();
if (window.frames[editor+'_rEdit'].document.selection.type != "Control")
{
return (trange.parentElement());
}
else
{
return (trange(0));
}
}
// trim functions
function SPAW_ltrim(txt)
{
var spacers = " \t\r\n";
while (spacers.indexOf(txt.charAt(0)) != -1)
{
txt = txt.substr(1);
}
return(txt);
}
function SPAW_rtrim(txt)
{
var spacers = " \t\r\n";
while (spacers.indexOf(txt.charAt(txt.length-1)) != -1)
{
txt = txt.substr(0,txt.length-1);
}
return(txt);
}
function SPAW_trim(txt)
{
return(SPAW_ltrim(SPAW_rtrim(txt)));
}
// is selected text a full tags inner html?
function SPAW_isFoolTag(editor, el)
{
var trange = this[editor+'_rEdit'].document.selection.createRange();
var ttext;
if (trange != null) ttext = SPAW_trim(trange.htmlText);
if (ttext != SPAW_trim(el.innerHtml))
return false;
else
return true;
}
function SPAW_style_change(editor, sender)
{
classname = sender.options[sender.selectedIndex].value;
window.frames[editor+'_rEdit'].focus();
var el = SPAW_getParentTag(editor);
if (el != null && el.tagName.toLowerCase() != 'body')
{
if (classname != 'default')
el.className = classname;
else
el.removeAttribute('className');
}
else if (el.tagName.toLowerCase() == 'body')
{
if (classname != 'default')
this[editor+'_rEdit'].document.body.innerHTML = '<p class="'+classname+'">'+this[editor+'_rEdit'].document.body.innerHTML+'</p>';
else
this[editor+'_rEdit'].document.body.innerHTML = '<p>'+this[editor+'_rEdit'].document.body.innerHTML+'</p>';
}
sender.selectedIndex = 0;
SPAW_update_toolbar(editor, true);
}
function SPAW_font_change(editor, sender)
{
fontname = sender.options[sender.selectedIndex].value;
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('fontname', false, fontname);
sender.selectedIndex = 0;
SPAW_update_toolbar(editor, true);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?