script.js.php
来自「PHP 建站工具,CMS系统,类似与oscommerce」· PHP 代码 · 共 1,627 行 · 第 1/4 页
PHP
1,627 行
function SPAW_fontsize_change(editor, sender)
{
fontsize = sender.options[sender.selectedIndex].value;
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('fontsize', false, fontsize);
sender.selectedIndex = 0;
SPAW_update_toolbar(editor, true);
}
function SPAW_paragraph_change(editor, sender)
{
format = sender.options[sender.selectedIndex].value;
window.frames[editor+'_rEdit'].focus();
this[editor+'_rEdit'].document.execCommand('formatBlock', false, format);
sender.selectedIndex = 0;
SPAW_update_toolbar(editor, true);
}
function SPAW_table_create_click(editor, sender)
{
if (window.frames[editor+'_rEdit'].document.selection.type != "Control")
{
// selection is not a control => insert table
var nt = showModalDialog('<?php echo $spaw_dir?>dialogs/table.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, null,
'dialogHeight:250px; dialogWidth:366px; resizable:no; status:no');
if (nt)
{
window.frames[editor+'_rEdit'].focus();
var newtable = document.createElement('TABLE');
try {
newtable.width = (nt.width)?nt.width:'';
newtable.height = (nt.height)?nt.height:'';
newtable.border = (nt.border)?nt.border:'';
if (nt.cellPadding) newtable.cellPadding = nt.cellPadding;
if (nt.cellSpacing) newtable.cellSpacing = nt.cellSpacing;
newtable.bgColor = (nt.bgColor)?nt.bgColor:'';
// create rows
for (i=0;i<parseInt(nt.rows);i++)
{
var newrow = document.createElement('TR');
for (j=0; j<parseInt(nt.cols); j++)
{
var newcell = document.createElement('TD');
newrow.appendChild(newcell);
}
newtable.appendChild(newrow);
}
var selection = window.frames[editor+'_rEdit'].document.selection.createRange();
selection.pasteHTML(newtable.outerHTML);
SPAW_toggle_borders(editor, window.frames[editor+'_rEdit'].document.body, null);
SPAW_update_toolbar(editor, true);
}
catch (excp)
{
alert('error');
}
}
}
}
function SPAW_table_prop_click(editor, sender)
{
window.frames[editor+'_rEdit'].focus();
var tTable
// check if table selected
if (window.frames[editor+'_rEdit'].document.selection.type == "Control")
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
if (tControl(0).tagName == 'TABLE')
{
tTable = tControl(0);
}
}
else
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
tControl = tControl.parentElement();
while ((tControl.tagName != 'TABLE') && (tControl.tagName != 'BODY'))
{
tControl = tControl.parentElement;
}
if (tControl.tagName == 'TABLE')
tTable = tControl;
else
return false;
}
var tProps = {};
tProps.width = (tTable.style.width)?tTable.style.width:tTable.width;
tProps.height = (tTable.style.height)?tTable.style.height:tTable.height;
tProps.border = tTable.border;
tProps.cellPadding = tTable.cellPadding;
tProps.cellSpacing = tTable.cellSpacing;
tProps.bgColor = tTable.bgColor;
var ntProps = showModalDialog('<?php echo $spaw_dir?>dialogs/table.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, tProps,
'dialogHeight:250px; dialogWidth:366px; resizable:no; status:no');
if (ntProps)
{
// set new settings
tTable.width = (ntProps.width)?ntProps.width:'';
tTable.style.width = (ntProps.width)?ntProps.width:'';
tTable.height = (ntProps.height)?ntProps.height:'';
tTable.style.height = (ntProps.height)?ntProps.height:'';
tTable.border = (ntProps.border)?ntProps.border:'';
if (ntProps.cellPadding) tTable.cellPadding = ntProps.cellPadding;
if (ntProps.cellSpacing) tTable.cellSpacing = ntProps.cellSpacing;
tTable.bgColor = (ntProps.bgColor)?ntProps.bgColor:'';
SPAW_toggle_borders(editor, tTable, null);
}
SPAW_update_toolbar(editor, true);
//SPAW_updateField(editor,"");
}
// edits table cell properties
function SPAW_table_cell_prop_click(editor, sender)
{
var cd = SPAW_getTD(editor); // current cell
if (cd)
{
var cProps = {};
cProps.width = (cd.style.width)?cd.style.width:cd.width;
cProps.height = (cd.style.height)?cd.style.height:cd.height;
cProps.bgColor = cd.bgColor;
cProps.align = cd.align;
cProps.vAlign = cd.vAlign;
cProps.className = cd.className;
cProps.noWrap = cd.noWrap;
cProps.styleOptions = new Array();
if (document.all['SPAW_'+editor+'_tb_style'] != null)
{
cProps.styleOptions = document.all['SPAW_'+editor+'_tb_style'].options;
}
var ncProps = showModalDialog('<?php echo $spaw_dir?>dialogs/td.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value, cProps,
'dialogHeight:220px; dialogWidth:366px; resizable:no; status:no');
if (ncProps)
{
cd.align = (ncProps.align)?ncProps.align:'';
cd.vAlign = (ncProps.vAlign)?ncProps.vAlign:'';
cd.width = (ncProps.width)?ncProps.width:'';
cd.style.width = (ncProps.width)?ncProps.width:'';
cd.height = (ncProps.height)?ncProps.height:'';
cd.style.height = (ncProps.height)?ncProps.height:'';
cd.bgColor = (ncProps.bgColor)?ncProps.bgColor:'';
cd.className = (ncProps.className)?ncProps.className:'';
cd.noWrap = ncProps.noWrap;
}
}
SPAW_update_toolbar(editor, true);
//SPAW_updateField(editor,"");
}
// returns current table cell
function SPAW_getTD(editor)
{
if (window.frames[editor+'_rEdit'].document.selection.type != "Control")
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
tControl = tControl.parentElement();
while ((tControl.tagName != 'TD') && (tControl.tagName != 'TH') && (tControl.tagName != 'TABLE') && (tControl.tagName != 'BODY'))
{
tControl = tControl.parentElement;
}
if ((tControl.tagName == 'TD') || (tControl.tagName == 'TH'))
return(tControl);
else
return(null);
}
else
{
return(null);
}
}
// returns current table row
function SPAW_getTR(editor)
{
if (window.frames[editor+'_rEdit'].document.selection.type != "Control")
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
tControl = tControl.parentElement();
while ((tControl.tagName != 'TR') && (tControl.tagName != 'TABLE') && (tControl.tagName != 'BODY'))
{
tControl = tControl.parentElement;
}
if (tControl.tagName == 'TR')
return(tControl);
else
return(null);
}
else
{
return(null);
}
}
// returns current table
function SPAW_getTable(editor)
{
if (window.frames[editor+'_rEdit'].document.selection.type == "Control")
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
if (tControl(0).tagName == 'TABLE')
return(tControl(0));
else
return(null);
}
else
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
tControl = tControl.parentElement();
while ((tControl.tagName != 'TABLE') && (tControl.tagName != 'BODY'))
{
tControl = tControl.parentElement;
}
if (tControl.tagName == 'TABLE')
return(tControl);
else
return(null);
}
}
// returns selected image
function SPAW_getImg(editor) {
if (window.frames[editor+'_rEdit'].document.selection.type == "Control")
{
var tControl = window.frames[editor+'_rEdit'].document.selection.createRange();
if (tControl(0).tagName == 'IMG')
return(tControl(0));
else
return(null);
}
else
{
return(null);
}
}
function SPAW_table_row_insert_click(editor, sender)
{
var ct = SPAW_getTable(editor); // current table
var cr = SPAW_getTR(editor); // current row
if (ct && cr)
{
var newr = ct.insertRow(cr.rowIndex+1);
for (i=0; i<cr.cells.length; i++)
{
if (cr.cells(i).rowSpan > 1)
{
// increase rowspan
cr.cells(i).rowSpan++;
}
else
{
var newc = cr.cells(i).cloneNode();
newr.appendChild(newc);
}
}
// increase rowspan for cells that were spanning through current row
for (i=0; i<cr.rowIndex; i++)
{
var tempr = ct.rows(i);
for (j=0; j<tempr.cells.length; j++)
{
if (tempr.cells(j).rowSpan > (cr.rowIndex - i))
tempr.cells(j).rowSpan++;
}
}
}
SPAW_update_toolbar(editor, true);
} // insertRow
function SPAW_formCellMatrix(ct)
{
var tm = new Array();
for (i=0; i<ct.rows.length; i++)
tm[i]=new Array();
for (i=0; i<ct.rows.length; i++)
{
jr=0;
for (j=0; j<ct.rows(i).cells.length;j++)
{
while (tm[i][jr] != undefined)
jr++;
for (jh=jr; jh<jr+(ct.rows(i).cells(j).colSpan?ct.rows(i).cells(j).colSpan:1);jh++)
{
for (jv=i; jv<i+(ct.rows(i).cells(j).rowSpan?ct.rows(i).cells(j).rowSpan:1);jv++)
{
if (jv==i)
{
tm[jv][jh]=ct.rows(i).cells(j).cellIndex;
}
else
{
tm[jv][jh]=-1;
}
}
}
}
}
return(tm);
}
function SPAW_table_column_insert_click(editor, sender)
{
var ct = SPAW_getTable(editor); // current table
var cr = SPAW_getTR(editor); // current row
var cd = SPAW_getTD(editor); // current row
if (cd && cr && ct)
{
// get "real" cell position and form cell matrix
var tm = SPAW_formCellMatrix(ct);
for (j=0; j<tm[cr.rowIndex].length; j++)
{
if (tm[cr.rowIndex][j] == cd.cellIndex)
{
realIndex=j;
break;
}
}
// insert column based on real cell matrix
for (i=0; i<ct.rows.length; i++)
{
if (tm[i][realIndex] != -1)
{
if (ct.rows(i).cells(tm[i][realIndex]).colSpan > 1)
{
ct.rows(i).cells(tm[i][realIndex]).colSpan++;
}
else
{
var newc = ct.rows(i).insertCell(tm[i][realIndex]+1)
var nc = ct.rows(i).cells(tm[i][realIndex]).cloneNode();
newc.replaceNode(nc);
}
}
}
}
SPAW_update_toolbar(editor, true);
} // insertColumn
function SPAW_table_cell_merge_right_click(editor, sender)
{
var ct = SPAW_getTable(editor); // current table
var cr = SPAW_getTR(editor); // current row
var cd = SPAW_getTD(editor); // current row
if (cd && cr && ct)
{
// get "real" cell position and form cell matrix
var tm = SPAW_formCellMatrix(ct);
for (j=0; j<tm[cr.rowIndex].length; j++)
{
if (tm[cr.rowIndex][j] == cd.cellIndex)
{
realIndex=j;
break;
}
}
if (cd.cellIndex+1<cr.cells.length)
{
ccrs = cd.rowSpan?cd.rowSpan:1;
cccs = cd.colSpan?cd.colSpan:1;
ncrs = cr.cells(cd.cellIndex+1).rowSpan?cr.cells(cd.cellIndex+1).rowSpan:1;
nccs = cr.cells(cd.cellIndex+1).colSpan?cr.cells(cd.cellIndex+1).colSpan:1;
// check if theres nothing between these 2 cells
j=realIndex;
while(tm[cr.rowIndex][j] == cd.cellIndex) j++;
if (tm[cr.rowIndex][j] == cd.cellIndex+1)
{
// proceed only if current and next cell rowspans are equal
if (ccrs == ncrs)
{
// increase colspan of current cell and append content of the next cell to current
cd.colSpan = cccs+nccs;
cd.innerHTML += cr.cells(cd.cellIndex+1).innerHTML;
cr.deleteCell(cd.cellIndex+1);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?