menu.js
上传用户:xxtaishan
上传日期:2022-01-02
资源大小:4063k
文件大小:15k
源码类别:

IP电话/视频会议

开发平台:

ASP/ASPX

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