📄 script.js.php
字号:
tempr.cells(j).rowSpan--; } } curCI = -1; // check for current row cells spanning more than 1 row for (var i=0; i<tm[cr.rowIndex].length; i++) { prevCI = curCI; curCI = tm[cr.rowIndex][i]; if (curCI != -1 && curCI != prevCI && cr.cells(curCI).rowSpan>1 && (cr.rowIndex+1)<ct.rows.length) { ni = i; nrCI = tm[cr.rowIndex+1][ni]; while (nrCI == -1) { ni++; if (ni<ct.rows(cr.rowIndex+1).cells.length) nrCI = tm[cr.rowIndex+1][ni]; else nrCI = ct.rows(cr.rowIndex+1).cells.length; } var newc = ct.rows(cr.rowIndex+1).insertCell(nrCI); ct.rows(cr.rowIndex).cells(curCI).rowSpan--; var nc = ct.rows(cr.rowIndex).cells(curCI).cloneNode(); newc.replaceNode(nc); // fix the matrix cs = (cr.cells(curCI).colSpan>1)?cr.cells(curCI).colSpan:1; for (var j=i; j<(i+cs);j++) { tm[cr.rowIndex+1][j] = nrCI; nj = j; } for (var j=nj; j<tm[cr.rowIndex+1].length; j++) { if (tm[cr.rowIndex+1][j] != -1) tm[cr.rowIndex+1][j]++; } } } // delete row ct.deleteRow(cr.rowIndex); } } SPAW_update_toolbar(editor, true); } // deleteRow function SPAW_table_column_delete_click(editor, sender) { var ct = SPAW_getTable(editor); // current table var cr = SPAW_getTR(editor); // current row var cd = SPAW_getTD(editor); // current cell if (cd && cr && ct) { // get "real" cell position and form cell matrix var tm = SPAW_formCellMatrix(ct); // if there's only one column delete the table if (tm[0].length<=1) { ct.removeNode(true); } else { for (var j=0; j<tm[cr.rowIndex].length; j++) { if (tm[cr.rowIndex][j] == cd.cellIndex) { realIndex=j; break; } } for (var 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 ct.rows(i).deleteCell(tm[i][realIndex]); } } } } SPAW_update_toolbar(editor, true); } // deleteColumn // split cell horizontally function SPAW_table_cell_split_horizontal_click(editor, sender) { var ct = SPAW_getTable(editor); // current table var cr = SPAW_getTR(editor); // current row var cd = SPAW_getTD(editor); // current cell if (cd && cr && ct) { // get "real" cell position and form cell matrix var tm = SPAW_formCellMatrix(ct); for (var j=0; j<tm[cr.rowIndex].length; j++) { if (tm[cr.rowIndex][j] == cd.cellIndex) { realIndex=j; break; } } if (cd.rowSpan>1) { // split only current cell // find where to insert a cell in the next row i = realIndex; while (tm[cr.rowIndex+1][i] == -1) i++; if (i == tm[cr.rowIndex+1].length) ni = ct.rows(cr.rowIndex+1).cells.length; else ni = tm[cr.rowIndex+1][i]; var newc = ct.rows(cr.rowIndex+1).insertCell(ni); cd.rowSpan--; var nc = cd.cloneNode(); newc.replaceNode(nc); cd.rowSpan = 1; } else { // add new row and make all other cells to span one row more ct.insertRow(cr.rowIndex+1); for (var i=0; i<cr.cells.length; i++) { if (i != cd.cellIndex) { rs = cr.cells(i).rowSpan>1?cr.cells(i).rowSpan:1; cr.cells(i).rowSpan = rs+1; } } for (var i=0; i<cr.rowIndex; i++) { var tempr = ct.rows(i); for (var j=0; j<tempr.cells.length; j++) { if (tempr.cells(j).rowSpan > (cr.rowIndex - i)) tempr.cells(j).rowSpan++; } } // clone current cell to new row var newc = ct.rows(cr.rowIndex+1).insertCell(0); var nc = cd.cloneNode(); newc.replaceNode(nc); } } SPAW_update_toolbar(editor, true); } // splitH function SPAW_table_cell_split_vertical_click(editor, sender) { var ct = SPAW_getTable(editor); // current table var cr = SPAW_getTR(editor); // current row var cd = SPAW_getTD(editor); // current cell if (cd && cr && ct) { // get "real" cell position and form cell matrix var tm = SPAW_formCellMatrix(ct); for (var j=0; j<tm[cr.rowIndex].length; j++) { if (tm[cr.rowIndex][j] == cd.cellIndex) { realIndex=j; break; } } if (cd.colSpan>1) { // split only current cell var newc = ct.rows(cr.rowIndex).insertCell(cd.cellIndex+1); cd.colSpan--; var nc = cd.cloneNode(); newc.replaceNode(nc); cd.colSpan = 1; } else { // clone current cell var newc = ct.rows(cr.rowIndex).insertCell(cd.cellIndex+1); var nc = cd.cloneNode(); newc.replaceNode(nc); for (var i=0; i<tm.length; i++) { if (i!=cr.rowIndex && tm[i][realIndex] != -1) { cs = ct.rows(i).cells(tm[i][realIndex]).colSpan>1?ct.rows(i).cells(tm[i][realIndex]).colSpan:1; ct.rows(i).cells(tm[i][realIndex]).colSpan = cs+1; } } } } SPAW_update_toolbar(editor, true); } // splitV // switch to wysiwyg mode function SPAW_design_tab_click(editor, sender) { //iText = this[editor+'_rEdit'].document.body.innerText; iText = document.all[editor].value; this[editor+'_rEdit'].document.body.innerHTML = iText; document.all['SPAW_'+editor+'_editor_mode'].value = 'design'; // turn off html mode toolbars document.all['SPAW_'+editor+'_toolbar_top_html'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_left_html'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_right_html'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_bottom_html'].style.display = 'none'; // turn on design mode toolbars document.all['SPAW_'+editor+'_toolbar_top_design'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_left_design'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_right_design'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_bottom_design'].style.display = 'inline'; // switch editors document.all[editor].style.display = "none"; document.all[editor+"_rEdit"].style.display = "inline"; document.all[editor+"_rEdit"].document.body.focus(); // turn on invisible borders if needed SPAW_toggle_borders(editor,this[editor+'_rEdit'].document.body, null); this[editor+'_rEdit'].focus(); SPAW_update_toolbar(editor, true); } // switch to html mode function SPAW_html_tab_click(editor, sender) { var iHTML = SPAW_getHtmlValue(editor, null); //iHTML = this[editor+'_rEdit'].document.body.innerHTML; //this[editor+'_rEdit'].document.body.innerText = iHTML; document.all[editor].value = iHTML; document.all['SPAW_'+editor+'_editor_mode'].value = 'html'; // turn off design mode toolbars document.all['SPAW_'+editor+'_toolbar_top_design'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_left_design'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_right_design'].style.display = 'none'; document.all['SPAW_'+editor+'_toolbar_bottom_design'].style.display = 'none'; // turn on html mode toolbars document.all['SPAW_'+editor+'_toolbar_top_html'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_left_html'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_right_html'].style.display = 'inline'; document.all['SPAW_'+editor+'_toolbar_bottom_html'].style.display = 'inline'; // switch editors document.all[editor+"_rEdit"].style.display = "none"; document.all[editor].style.display = "inline"; document.all[editor].focus(); this[editor+'_rEdit'].focus(); SPAW_update_toolbar(editor, true); } function SPAW_getFieldByEditor(editor, field) { // NOTE: this function doesn't make much sense in the current situation // but is left so nothing gets broken var thefield; // get by id //// OLD: get field by editor name if no field passed if (field == null || field == "") { // var flds = document.getElementsByName(editor); // thefield = flds[0].id; thefield = document.getElementById(editor).id; } else { thefield=field; } return thefield; } function SPAW_stripAbsoluteUrl(editor, url) { var curl = window.frames[editor+'_rEdit'].location.href; var di = curl.lastIndexOf('/', curl.lastIndexOf('?')!=-1?curl.lastIndexOf('?'):curl.length); var cdir = curl; if (di != -1) cdir = curl.substr(0,di+1); var chost = curl; var hi = curl.indexOf('/',curl.indexOf('://')!=-1?(curl.indexOf('://')+3):curl.length); if (hi != -1) chost = curl.substr(0,hi); if (url.toLowerCase().indexOf(curl.toLowerCase())==0) { url = url.substr(curl.length); } else if (url.toLowerCase().indexOf(cdir.toLowerCase())==0) { url = url.substr(cdir.length); } else if (url.toLowerCase().indexOf(chost.toLowerCase())==0) { url = url.substr(chost.length); } return(url); } function SPAW_stripAbsoluteUrlFromImg(editor, url) { var curl = window.frames[editor+'_rEdit'].location.href; var chost = curl; var hi = curl.indexOf('/',curl.indexOf('://')!=-1?(curl.indexOf('://')+3):curl.length); if (hi != -1) chost = curl.substr(0,hi); if (url.toLowerCase().indexOf(chost.toLowerCase())==0) { url = url.substr(chost.length); } return(url); } function SPAW_getHtmlValue(editor, thefield) { var htmlvalue; if(document.all['SPAW_'+editor+'_editor_mode'].value == 'design') { // wysiwyg // replace automatic absolute urls var links = this[editor+'_rEdit'].document.getElementsByTagName('A'); var aln = 0; if (links != null) aln = links.length; for (var i=0;i<aln;i++) { links[i].href = SPAW_stripAbsoluteUrl(editor, links[i].href); if (!links[i].href) { links[i].removeAttribute('href',0); } } var imgs = this[editor+'_rEdit'].document.getElementsByTagName('IMG'); var aln = 0; if (imgs != null) aln = imgs.length; for (var i=0;i<aln;i++) { imgs[i].src = SPAW_stripAbsoluteUrlFromImg(editor, imgs[i].src); } htmlvalue = this[editor+'_rEdit'].document.body.innerHTML; } else { // code htmlvalue = document.all[thefield].value; } return htmlvalue; } function SPAW_updateField(editor, field) { var thefield = SPAW_getFieldByEditor(editor, field); var htmlvalue = SPAW_getHtmlValue(editor, thefield); if (document.all[thefield].value != htmlvalue) { // something changed document.all[thefield].value = htmlvalue; } } function SPAW_confirm(editor,block,message) { return showModalDialog('<?php echo $spaw_dir?>dialogs/confirm.php?lang=' + document.all['SPAW_'+editor+'_lang'].value + '&theme=' + document.all['SPAW_'+editor+'_theme'].value + '&block=' + block + '&message=' + message, null, 'dialogHeight:100px; dialogWidth:300px; resizable:no; status:no'); } // cleanup html function SPAW_cleanup_click(editor, sender) { if (SPAW_confirm(editor,'cleanup','confirm')) { window.frames[editor+'_rEdit'].focus(); var found = true; while (found) { found = false; var els = window.frames[editor+'_rEdit'].document.body.all; for (var i=0; i<els.length; i++) { // remove tags with urns set if (els[i].tagUrn != null && els[i].tagUrn != '') { els[i].removeNode(false); found = true; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -