menu.js
上传用户:huijianzhu
上传日期:2009-11-25
资源大小:9825k
文件大小:14k
源码类别:

电子政务应用

开发平台:

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. var oPopupMenu = null;
  7. if (BrowserInfo.IsIE55OrMore){
  8. oPopupMenu = window.createPopup();
  9. }
  10. // 取菜单行
  11. function getMenuRow(s_Disabled, s_Event, s_Image, s_Html) {
  12. var s_MenuRow = "";
  13. 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';";
  14. if (s_Disabled==""){
  15. s_MenuRow += " onclick="parent."+s_Event+";parent.oPopupMenu.hide();"";
  16. }
  17. s_MenuRow += ">"
  18. if (s_Image !=""){
  19. s_MenuRow += "&nbsp;<img border=0 src='buttonimage/"+config.StyleDir+"/"+s_Image+"' width=20 height=20 align=absmiddle "+s_Disabled+">&nbsp;";
  20. }else{
  21. s_MenuRow += "&nbsp;";
  22. }
  23. s_MenuRow += s_Html+"</td></tr></TABLE></td></tr>";
  24. return s_MenuRow;
  25. }
  26. // 取标准的format菜单行
  27. function getFormatMenuRow(menu, html, image){
  28. var s_Disabled = "";
  29. if (!eWebEditor.document.queryCommandEnabled(menu)){
  30. s_Disabled = "disabled";
  31. }
  32. var s_Event = "format('"+menu+"')";
  33. var s_Image = menu+".gif";
  34. if (image){
  35. s_Image = image;
  36. }
  37. return getMenuRow(s_Disabled, s_Event, s_Image, html)
  38. }
  39. // 取表格菜单行
  40. function getTableMenuRow(what){
  41. var s_Menu = "";
  42. var s_Disabled = "disabled";
  43. switch(what){
  44. case "TableInsert":
  45. if (!isTableSelected()) s_Disabled="";
  46. s_Menu += getMenuRow(s_Disabled, "TableInsert()", "tableinsert.gif", "插入表格...")
  47. break;
  48. case "TableProp":
  49. if (isTableSelected()||isCursorInTableCell()) s_Disabled="";
  50. s_Menu += getMenuRow(s_Disabled, "TableProp()", "tableprop.gif", "表格属性...")
  51. break;
  52. case "TableCell":
  53. if (isCursorInTableCell()) s_Disabled="";
  54. s_Menu += getMenuRow(s_Disabled, "TableCellProp()", "tablecellprop.gif", "单元格属性...")
  55. s_Menu += getMenuRow(s_Disabled, "TableCellSplit()", "tablecellsplit.gif", "拆分单元格...")
  56. s_Menu += sMenuHr;
  57. s_Menu += getMenuRow(s_Disabled, "TableRowProp()", "tablerowprop.gif", "表格行属性...")
  58. s_Menu += getMenuRow(s_Disabled, "TableRowInsertAbove()", "tablerowinsertabove.gif", "插入行(在上方)");
  59. s_Menu += getMenuRow(s_Disabled, "TableRowInsertBelow()", "tablerowinsertbelow.gif", "插入行(在下方)");
  60. s_Menu += getMenuRow(s_Disabled, "TableRowMerge()", "tablerowmerge.gif", "合并行(向下方)");
  61. s_Menu += getMenuRow(s_Disabled, "TableRowSplit(2)", "tablerowsplit.gif", "拆分行");
  62. s_Menu += getMenuRow(s_Disabled, "TableRowDelete()", "tablerowdelete.gif", "删除行");
  63. s_Menu += sMenuHr;
  64. s_Menu += getMenuRow(s_Disabled, "TableColInsertLeft()", "tablecolinsertleft.gif", "插入列(在左侧)");
  65. s_Menu += getMenuRow(s_Disabled, "TableColInsertRight()", "tablecolinsertright.gif", "插入列(在右侧)");
  66. s_Menu += getMenuRow(s_Disabled, "TableColMerge()", "tablecolmerge.gif", "合并列(向右侧)");
  67. s_Menu += getMenuRow(s_Disabled, "TableColSplit(2)", "tablecolsplit.gif", "拆分列");
  68. s_Menu += getMenuRow(s_Disabled, "TableColDelete()", "tablecoldelete.gif", "删除列");
  69. break;
  70. }
  71. return s_Menu;
  72. }
  73. // 右键菜单
  74. function showContextMenu(event){
  75. if (!bEditMode) return false;
  76. var width = 150;
  77. var height = 0;
  78. var lefter = event.clientX;
  79. var topper = event.clientY;
  80. var oPopDocument = oPopupMenu.document;
  81. var oPopBody = oPopupMenu.document.body;
  82. var sMenu="";
  83. sMenu += getFormatMenuRow("cut", "剪切");
  84. sMenu += getFormatMenuRow("copy", "复制");
  85. sMenu += getFormatMenuRow("paste", "常规粘贴");
  86. sMenu += getFormatMenuRow("delete", "删除");
  87. sMenu += getFormatMenuRow("selectall", "全选");
  88. sMenu += sMenuHr;
  89. height += 102;
  90. if (isCursorInTableCell()){
  91. sMenu += getTableMenuRow("TableProp");
  92. sMenu += getTableMenuRow("TableCell");
  93. sMenu += sMenuHr;
  94. height += 286;
  95. }
  96. if (isControlSelected("TABLE")){
  97. sMenu += getTableMenuRow("TableProp");
  98. sMenu += sMenuHr;
  99. height += 22;
  100. }
  101. if (isControlSelected("IMG")){
  102. sMenu += getMenuRow("", "ShowDialog('dialog/img.htm', 350, 315, true)", "img.gif", "图片属性...");
  103. sMenu += sMenuHr;
  104. sMenu += getMenuRow("", "zIndex('forward')", "forward.gif", "上移一层");
  105. sMenu += getMenuRow("", "zIndex('backward')", "backward.gif", "下移一层");
  106. sMenu += sMenuHr;
  107. height += 64;
  108. }
  109. sMenu += getMenuRow("", "findReplace()", "findreplace.gif", "查找替换...");
  110. height += 20;
  111. sMenu = sMenu1 + sMenu + sMenu2;
  112. oPopDocument.open();
  113. oPopDocument.write(config.StyleMenuHeader+sMenu);
  114. oPopDocument.close();
  115. height+=2;
  116. if(lefter+width > document.body.clientWidth) lefter=lefter-width;
  117. //if(topper+height > document.body.clientHeight) topper=topper-height;
  118. oPopupMenu.show(lefter, topper, width, height, eWebEditor.document.body);
  119. return false;
  120. }
  121. // 工具栏菜单
  122. function showToolMenu(menu){
  123. if (!bEditMode) return false;
  124. var sMenu = ""
  125. var width = 150;
  126. var height = 0;
  127. var lefter = event.clientX;
  128. var leftoff = event.offsetX
  129. var topper = event.clientY;
  130. var topoff = event.offsetY;
  131. var oPopDocument = oPopupMenu.document;
  132. var oPopBody = oPopupMenu.document.body;
  133. switch(menu){
  134. case "font": // 字体菜单
  135. sMenu += getFormatMenuRow("bold", "粗体", "bold.gif");
  136. sMenu += getFormatMenuRow("italic", "斜体", "italic.gif");
  137. sMenu += getFormatMenuRow("underline", "下划线", "underline.gif");
  138. sMenu += getFormatMenuRow("strikethrough", "中划线", "strikethrough.gif");
  139. sMenu += sMenuHr;
  140. sMenu += getFormatMenuRow("superscript", "上标", "superscript.gif");
  141. sMenu += getFormatMenuRow("subscript", "下标", "subscript.gif");
  142. sMenu += sMenuHr;
  143. sMenu += getMenuRow("", "ShowDialog('dialog/selcolor.htm?action=forecolor', 280, 250, true)", "forecolor.gif", "字体颜色");
  144. sMenu += getMenuRow("", "ShowDialog('dialog/selcolor.htm?action=backcolor', 280, 250, true)", "backcolor.gif", "字体背景色");
  145. sMenu += sMenuHr;
  146. sMenu += getMenuRow("", "insert('big')", "tobig.gif", "字体增大");
  147. sMenu += getMenuRow("", "insert('small')", "tosmall.gif", "字体减小");
  148. height = 206;
  149. break;
  150. case "paragraph": // 段落菜单
  151. sMenu += getFormatMenuRow("JustifyLeft", "左对齐", "justifyleft.gif");
  152. sMenu += getFormatMenuRow("JustifyCenter", "居中对齐", "fustifycenter.gif");
  153. sMenu += getFormatMenuRow("JustifyRight", "右对齐", "justifyright.gif");
  154. sMenu += getFormatMenuRow("JustifyFull", "两端对齐", "justifyfull.gif");
  155. sMenu += sMenuHr;
  156. sMenu += getFormatMenuRow("insertorderedlist", "编号", "insertorderedlist.gif");
  157. sMenu += getFormatMenuRow("insertunorderedlist", "项目符号", "insertunorderedlist.gif");
  158. sMenu += getFormatMenuRow("indent", "增加缩进量", "indent.gif");
  159. sMenu += getFormatMenuRow("outdent", "减少缩进量", "outdent.gif");
  160. sMenu += sMenuHr;
  161. sMenu += getFormatMenuRow("insertparagraph", "插入段落", "insertparagraph.gif");
  162. sMenu += getMenuRow("", "insert('br')", "br.gif", "插入换行符");
  163. height = 204;
  164. break;
  165. case "edit": // 编辑菜单
  166. var s_Disabled = "";
  167. if (history.data.length <= 1 || history.position <= 0) s_Disabled = "disabled";
  168. sMenu += getMenuRow(s_Disabled, "goHistory(-1)", "undo.gif", "撤消")
  169. if (history.position >= history.data.length-1 || history.data.length == 0) s_Disabled = "disabled";
  170. sMenu += getMenuRow(s_Disabled, "goHistory(1)", "redo.gif", "恢复")
  171. sMenu += sMenuHr;
  172. sMenu += getFormatMenuRow("Cut", "剪切", "cut.gif");
  173. sMenu += getFormatMenuRow("Copy", "复制", "copy.gif");
  174. sMenu += getFormatMenuRow("Paste", "常规粘贴", "paste.gif");
  175. sMenu += getMenuRow("", "PasteText()", "pastetext.gif", "纯文本粘贴");
  176. sMenu += getMenuRow("", "PasteWord()", "pasteword.gif", "从Word中粘贴");
  177. sMenu += sMenuHr;
  178. sMenu += getFormatMenuRow("delete", "删除", "delete.gif");
  179. sMenu += getFormatMenuRow("RemoveFormat", "删除文字格式", "removeformat.gif");
  180. sMenu += sMenuHr;
  181. sMenu += getFormatMenuRow("SelectAll", "全部选中", "selectall.gif");
  182. sMenu += getFormatMenuRow("Unselect", "取消选择", "unselect.gif");
  183. sMenu += sMenuHr;
  184. sMenu += getMenuRow("", "findReplace()", "findreplace.gif", "查找替换");
  185. height = 248;
  186. break;
  187. case "object": // 对象效果菜单
  188. sMenu += getMenuRow("", "ShowDialog('dialog/selcolor.htm?action=bgcolor', 280, 250, true)", "bgcolor.gif", "对象背景颜色");
  189. sMenu += getMenuRow("", "ShowDialog('dialog/backimage.htm', 350, 210, true)", "bgpic.gif", "背景图片");
  190. sMenu += sMenuHr;
  191. sMenu += getMenuRow("", "absolutePosition()", "abspos.gif", "绝对或相对位置");
  192. sMenu += getMenuRow("", "zIndex('forward')", "forward.gif", "上移一层");
  193. sMenu += getMenuRow("", "zIndex('backward')", "backward.gif", "下移一层");
  194. sMenu += sMenuHr;
  195. sMenu += getMenuRow("", "showBorders()", "showborders.gif", "显示隐藏指导方针");
  196. sMenu += sMenuHr;
  197. sMenu += getMenuRow("", "insert('quote')", "quote.gif", "引用样式");
  198. sMenu += getMenuRow("", "insert('code')", "code.gif", "代码样式");
  199. height = 166;
  200. break;
  201. case "component": // 组件菜单
  202. sMenu += getMenuRow("", "ShowDialog('dialog/img.htm', 350, 315, true)", "img.gif", "插入或修改图片");
  203. sMenu += getMenuRow("", "ShowDialog('dialog/flash.htm', 350, 200, true)", "flash.gif", "插入Flash动画");
  204. sMenu += getMenuRow("", "ShowDialog('dialog/media.htm', 350, 200, true)", "media.gif", "插入自动播放媒体");
  205. sMenu += getMenuRow("", "ShowDialog('dialog/file.htm', 350, 150, true)", "file.gif", "插入其他文件");
  206. sMenu += sMenuHr;
  207. sMenu += getMenuRow("", "remoteUpload()", "remoteupload.gif", "远程自动上传");
  208. sMenu += sMenuHr;
  209. sMenu += getMenuRow("", "ShowDialog('dialog/fieldset.htm', 350, 170, true)", "fieldset.gif", "插入或修改栏目框");
  210. sMenu += getMenuRow("", "ShowDialog('dialog/iframe.htm', 350, 200, true)", "iframe.gif", "插入或修改网页帧");
  211. sMenu += getFormatMenuRow("InsertHorizontalRule", "插入水平尺", "inserthorizontalrule.gif");
  212. sMenu += getMenuRow("", "ShowDialog('dialog/marquee.htm', 395, 150, true)", "marquee.gif", "插入或修改字幕");
  213. sMenu += sMenuHr;
  214. sMenu += getMenuRow("", "createLink()", "createlink.gif", "插入或修改超链接");
  215. sMenu += getMenuRow("", "ShowDialog('dialog/anchor.htm', 270, 220, true)", "anchor.gif", "书签管理");
  216. sMenu += getMenuRow("", "mapEdit()", "map.gif", "图形热点链接");
  217. sMenu += getFormatMenuRow("UnLink", "取消超链接或标签", "unlink.gif");
  218. height = 266;
  219. break;
  220. case "tool": // 工具菜单
  221. sMenu += getMenuRow("", "ShowDialog('dialog/symbol.htm', 350, 220, true)", "symbol.gif", "插入特殊字符");
  222. sMenu += getMenuRow("", "insert('excel')", "excel.gif", "插入Excel表格");
  223. sMenu += getMenuRow("", "ShowDialog('dialog/emot.htm', 300, 180, true)", "emot.gif", "插入表情图标");
  224. sMenu += sMenuHr;
  225. sMenu += getMenuRow("", "insert('nowdate')", "date.gif", "插入当前日期");
  226. sMenu += getMenuRow("", "insert('nowtime')", "time.gif", "插入当前时间");
  227. height = 102;
  228. break;
  229. case "file": // 文件视图菜单
  230. sMenu += getMenuRow("", "format('Refresh')", "refresh.gif", "新建");
  231. sMenu += sMenuHr;
  232. sMenu += getMenuRow("", "setMode('CODE')", "modecodebtn.gif", "代码状态");
  233. sMenu += getMenuRow("", "setMode('EDIT')", "modeeditbtn.gif", "编辑状态");
  234. sMenu += getMenuRow("", "setMode('TEXT')", "modetextbtn.gif", "文本状态");
  235. sMenu += getMenuRow("", "setMode('VIEW')", "modeviewbtn.gif", "预览状态");
  236. sMenu += sMenuHr;
  237. sMenu += getMenuRow("", "sizeChange(300)", "sizeplus.gif", "增高编辑区");
  238. sMenu += getMenuRow("", "sizeChange(-300)", "sizeminus.gif", "减小编辑区");
  239. sMenu += sMenuHr;
  240. sMenu += getMenuRow("", "format('Print')", "print.gif", "打印");
  241. sMenu += sMenuHr;
  242. sMenu += getMenuRow("", "ShowDialog('dialog/help.htm','400','300')", "help.gif", "查看使用帮助");
  243. sMenu += getMenuRow("", "ShowDialog('dialog/about.htm','400','220')", "about.gif", "关于HTML编辑器");
  244. sMenu += getMenuRow("", "window.open('#')", "site.gif", "北京品恩科技有限公司");
  245. height = 228;
  246. break;
  247. case "table": // 表格菜单
  248. sMenu += getTableMenuRow("TableInsert");
  249. sMenu += getTableMenuRow("TableProp");
  250. sMenu += sMenuHr;
  251. sMenu += getTableMenuRow("TableCell");
  252. height = 306;
  253. break;
  254. case "form": // 表单菜单
  255. sMenu += getFormatMenuRow("InsertInputText", "插入输入框", "formtext.gif");
  256. sMenu += getFormatMenuRow("InsertTextArea", "插入输入区", "formtextarea.gif");
  257. sMenu += getFormatMenuRow("InsertInputRadio", "插入单选钮", "formradio.gif");
  258. sMenu += getFormatMenuRow("InsertInputCheckbox", "插入复选钮", "formcheckbox.gif");
  259. sMenu += getFormatMenuRow("InsertSelectDropdown", "插入下拉框", "formdropdown.gif");
  260. sMenu += getFormatMenuRow("InsertButton", "插入按钮", "formbutton.gif");
  261. height = 120;
  262. break;
  263. case "zoom": // 缩放菜单
  264. for (var i=0; i<aZoomSize.length; i++){
  265. if (aZoomSize[i]==nCurrZoomSize){
  266. sMenu += getMenuRow("", "doZoom("+aZoomSize[i]+")", "checked.gif", aZoomSize[i]+"%");
  267. }else{
  268. sMenu += getMenuRow("", "doZoom("+aZoomSize[i]+")", "space.gif", aZoomSize[i]+"%");
  269. }
  270. height += 20;
  271. }
  272. break;
  273. }
  274. sMenu = sMenu1 + sMenu + sMenu2;
  275. oPopDocument.open();
  276. oPopDocument.write(config.StyleMenuHeader+sMenu);
  277. oPopDocument.close();
  278. height+=2;
  279. if(lefter+width > document.body.clientWidth) lefter=lefter-width;
  280. //if(topper+height > document.body.clientHeight) topper=topper-height;
  281. oPopupMenu.show(lefter - leftoff - 2, topper - topoff + 22, width, height, document.body);
  282. return false;
  283. }