- 浏览: 1494326 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (460)
- java (148)
- javascript (34)
- Flex文章 (4)
- css+div (2)
- ajax (6)
- extjs (11)
- 人生感悟 (9)
- struts2.0 (6)
- IT之路,生活 (15)
- hibernate (6)
- struts1 (1)
- spring (5)
- j2ee错误 (3)
- Dwr (5)
- Linux (33)
- C++ (3)
- SWT Win32 (2)
- EJB (1)
- JPA (4)
- C语言和LinuxC (7)
- SQL (13)
- 项目经理 (6)
- db2 (2)
- java数据结构 (2)
- 网页播放器flv (1)
- 数据库 (24)
- 用户体验设计学习 (2)
- 网络电话 (5)
- 军事理论 (4)
- android (3)
- oracle (18)
- oracle ebs form (11)
- oracle ebs oaf (4)
- erp (20)
- DBA (9)
- java中URL 的编码和解码函数 (1)
- 铁血丹心 (1)
- excel 单元格格式不能立即生效 (1)
- Java调用bat文件 (1)
- 如何把本地outlook中的邮件上传到网络邮箱中 (1)
- java 报表 打印 (1)
- 创建dblink (1)
- 图标前台框架 (1)
- vnc (1)
- FORM (1)
- MYSQL (1)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
web打印不显示页眉页脚 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
Javascript网页打印大全 -
hardyer:
大哥写的很实在,受教了,提前祝你元旦快乐!
黎活明给程序员的忠告 -
cxysilahi:
请问WIN7 64位,调用报错Exception in thr ...
JNative的初步使用 -
action1949:
好东西,解决问题
JFreeChart乱码解决方法
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.Menu=function(isDir,text,handle)
{
this.IsDirectory=false; //是否是目录
this.HTMLObj=null; //关联HTML对象
this.ParentMenu=null; //父菜单
this.SubMenus=[]; //存储子菜单数组
this.Text="";
this.ZIndex=900; //层
this.Handle=null; //单击时所执行的语句,目录不支持此属性
if(typeof(isDir)!="undefined" && isDir)
{
this.IsDirectory=true;
}
if(typeof(text)!="undefined")
{
this.Text=text;
}
if(typeof(handle)!="undefined")
{
this.Handle=handle;
}
//创建并追加子菜单
this.CreateSubMenu=function(isDir,text,handle)
{
if(this.IsDirectory)
{
var oMenu=new Menu();
if(typeof(isDir)!="undefined")
{
oMenu.IsDirectory=isDir;
}
if(typeof(text)!="undefined")
{
oMenu.Text=text;
}
if(typeof(handle)!="undefined")
{
oMenu.Handle=handle;
}
this.AppendSubMenu(oMenu);
return oMenu;
}
alert("出现错误,该对象不支持CreateSubMenu方法");
return null;
}
//追加子菜单
this.AppendSubMenu=function(oMenu)
{
this.SubMenus.push(oMenu);
oMenu.ParentMenu=this;
oMenu.ZIndex=this.ZIndex+1;
}
//插入子菜单
this.InsertSubMenu=function(oMenu,iAlign)
{
if(iAlign>=this.SubMenus.length)
{
this.SubMenus.push(oMenu);
}
else
{
this.SubMenus.splice(iAlign,0,oMenu);
}
oMenu.ParentMenu=this;
oMenu.ZIndex=this.ZIndex+1;
}
//移除子菜单
this.RemoveSubMenu=function(iAlign)
{
var RemoveArr=this.SubMenus.splice(iAlign,1);
if(RemoveArr.length>0)
{
RemoveArr[0].HTMLObj.parentNode.removeChild(RemoveArr[0].HTMLObj);
}
}
//把子菜单的数据转换成HTML格式
this.Create=function()
{
if(!this.IsDirectory)
{
alert("出现错误,该对象不支持Create方法");
return false;
}
var ParentElement=document.createElement("div");
this.ChildMenuHTMLObj=ParentElement; //关联子菜单的HTML对象容器
ParentElement.style.cursor="default";
ParentElement.onmousedown=function()
{
window.event.cancelBubble=true;
}
ParentElement.onselectstart=function()
{
return false;
}
ParentElement.style.position="absolute";
ParentElement.style.width="0px";
ParentElement.style.visibility="hidden";
ParentElement.style.zIndex=this.ZIndex;
ParentElement.style.border="1px solid #464646";
var table=document.createElement("table");
table.border=0;
table.cellPadding=0;
table.cellSpacing=0;
var tbody=document.createElement("tbody");
table.appendChild(tbody);
var tr=document.createElement("tr");
var ltd=document.createElement("td");
var rtd=document.createElement("td");
tr.appendChild(ltd);
tr.appendChild(rtd);
tbody.appendChild(tr);
ltd.style.width="25px";
ltd.style.backgroundImage="url(http://www.fjcjhr.com/bg.gif)";
ParentElement.appendChild(table);
var len=this.SubMenus.length;
if(len>0)
{
var ChildTable=document.createElement("table");
var ChildTBody=document.createElement("tbody");
ChildTable.appendChild(ChildTBody);
ChildTable.border=0;
ChildTable.cellPadding=0;
ChildTable.cellSpacing=0;
ChildTable.style.fontSize=Menu.Config.FontSize;
ChildTable.style.color=Menu.Config.FontColor;
rtd.appendChild(ChildTable);
}
for(var i=0;i<len;i++)
{
var tempTr=document.createElement("tr");
//关联HTML对象和DATA对象
this.SubMenus[i].HTMLObj=tempTr; //关联子菜单的HTML对象
tempTr.DataObj=this.SubMenus[i];
var tempTd=document.createElement("td");
tempTr.style.backgroundColor=Menu.Config.BgColor;
tempTr.appendChild(tempTd);
tempTd.style.height=Menu.Config.PerMenuHeight;
tempTd.vAlign="middle";
tempTd.style.wordWarp="normal";
tempTd.style.paddingLeft="5px";
tempTd.style.paddingRight="5px";
tempTr.onmouseover=this.SubMenus[i].MouseOver;
tempTr.onmouseout=this.SubMenus[i].MouseOut;
tempTr.onclick=this.SubMenus[i].Click;
tempTd.appendChild(document.createTextNode(this.SubMenus[i].Text));
var DirectoryTd=document.createElement("td");
if(this.SubMenus[i].IsDirectory)
{
var font=document.createElement("font");
font.style.fontFamily="webdings";
font.appendChild(document.createTextNode("4"));
DirectoryTd.appendChild(font);
}
tempTr.appendChild(DirectoryTd);
ChildTBody.appendChild(tempTr);
}
document.body.appendChild(ParentElement);
for(var i=0;i<len;i++)
{
if(this.SubMenus[i].IsDirectory)
{
this.SubMenus[i].Create();
}
}
}
this.Show=function(e)
{
if(!this.IsDirectory)
{
alert("出现错误,该对象不支持Show方法");
return false;
}
if(this.SubMenus.length==0) return;
var ChildHTMLObj=this.ChildMenuHTMLObj;
var DWidth=document.body.clientWidth;
var DHeight=document.body.clientHeight;
var left=document.body.scrollLeft,top=document.body.scrollTop;
var x,y;
if(this.ParentMenu==null) //根对象
{
x=e.clientX,y=e.clientY;
if(x+ChildHTMLObj.offsetWidth>DWidth)
{
x-=ChildHTMLObj.offsetWidth;
}
if(y+ChildHTMLObj.offsetHeight>DHeight)
{
y-=ChildHTMLObj.offsetHeight;
}
x+=left;
y+=top;
}
else
{
var CurrentHTMLObj=this.HTMLObj;
var x=Menu.GetMenuPositionX(CurrentHTMLObj)+CurrentHTMLObj.offsetWidth,y=Menu.GetMenuPositionY(CurrentHTMLObj);
if(x+ChildHTMLObj.offsetWidth>DWidth+left)
{
x-=(CurrentHTMLObj.offsetWidth+ChildHTMLObj.offsetWidth);
}
if(y+ChildHTMLObj.offsetHeight>DHeight+top)
{
y-=ChildHTMLObj.offsetHeight;
y+=CurrentHTMLObj.offsetHeight;
}
}
ChildHTMLObj.style.left=x;
ChildHTMLObj.style.top=y;
this.ChildMenuHTMLObj.style.visibility="visible";
}
this.Hidden=function()
{
if(!this.IsDirectory)
{
alert("出现错误,该对象不支持Hidden方法");
return false;
}
var len=this.SubMenus.length;
for(var i=0;i<len;i++)
{
if(this.SubMenus[i].IsDirectory)
{
this.SubMenus[i].Hidden();
}
}
this.ChildMenuHTMLObj.style.visibility="hidden";
}
this.MouseOver=function()
{
this.style.backgroundColor=Menu.Config.OverBgColor;
var ParentMenu=this.DataObj.ParentMenu;
var len=ParentMenu.SubMenus.length;
for(var i=0;i<len;i++)
{
if(ParentMenu.SubMenus[i].IsDirectory)
{
ParentMenu.SubMenus[i].Hidden();
}
}
if(this.DataObj.IsDirectory)
{
this.DataObj.Show();
}
}
this.MouseOut=function()
{
this.style.backgroundColor=Menu.Config.BgColor;
}
this.Clear=function()
{
if(this.IsDirectory)
{
var len=this.SubMenus.length;
for(var i=0;i<len;i++)
{
if(this.SubMenus[i].IsDirectory)
{
this.SubMenus[i].Clear();
}
}
}
document.body.removeChild(this.ChildMenuHTMLObj);
}
this.Click=function()
{
if(!this.DataObj.IsDirectory)
{
eval(this.DataObj.Handle);
Menu.Config.FirstMenu.Hidden();
}
}
}
//菜单配置
Menu.Config=
{
FirstMenu:new Menu(true), //系统定义的第一个菜单,必须为容器(IsDirectory=true)
BgColor:"#FFFFFF", //设置菜单背景颜色
OverBgColor:"#B5BED6", //设置菜单鼠标经过时的背景颜色
FontSize:"13px", //设置菜单字体大小
FontColor:"#000000", //设置菜单字体颜色
PerMenuHeight:"25px" //调整菜单的行距
};
Menu.GetMenuPositionX=function(obj)
{
var ParentObj=obj;
var left;
left=ParentObj.offsetLeft;
while(ParentObj=ParentObj.offsetParent){
left+=ParentObj.offsetLeft;
}
return left;
}
Menu.GetMenuPositionY=function(obj)
{
var ParentObj=obj;
var top;
top=ParentObj.offsetTop;
while(ParentObj=ParentObj.offsetParent){
top+=ParentObj.offsetTop;
}
return top;
}
Menu.Update=function()
{
var FirstMenu=Menu.Config.FirstMenu;
FirstMenu.Clear();
FirstMenu.Create();
}
//事件
window.onload=function()
{
Menu.Config.FirstMenu.Create();
document.oncontextmenu=function(e)
{
e=e||event
Menu.Config.FirstMenu.Show(e);
return false;
}
document.onmousedown=function()
{
Menu.Config.FirstMenu.Hidden();
}
}
//*************************************系统实例******************************************
window.CXP_Menu=Menu.Config.FirstMenu;
var pg=CXP_Menu.CreateSubMenu();
pg.Text="程序(P)";
pg.IsDirectory=true;
var wd=new Menu(true,"文档(D)");
CXP_Menu.AppendSubMenu(wd);
var set=CXP_Menu.CreateSubMenu(true,"设置(S)");
var help=CXP_Menu.CreateSubMenu(false,"帮助(H)");
help.Handle="alert('这是帮助!')";
var run=CXP_Menu.CreateSubMenu(false,"运行(R) ...","alert('这是运行!')");
var exit=new Menu();
exit.Text="关机(U) ...";
CXP_Menu.AppendSubMenu(exit);
//插入菜单
CXP_Menu.InsertSubMenu(new Menu(false,"Windows Update","if(confirm('此处通向MS官方,您真的要去吗?'))location.href='http://windowsupdate.microsoft.com/'"));
pg.AppendSubMenu(new Menu(false,"程序1 ..."));
pg.AppendSubMenu(new Menu(false,"程序2"));
pg.AppendSubMenu(new Menu(false,"程序4"));
pg.AppendSubMenu(new Menu(false,"程序5"));
pg.AppendSubMenu(new Menu(false,"程序6"));
wd.AppendSubMenu(new Menu(false,"文档1 ..."));
wd.AppendSubMenu(new Menu(false,"文档2"));
set.AppendSubMenu(new Menu(false,"设置1 ..."));
set.AppendSubMenu(new Menu(false,"设置2"));
var pg3=new Menu(true,"程序3");
pg3.AppendSubMenu(new Menu(false,"程序4"));
pg3.AppendSubMenu(new Menu(false,"程序5"));
pg3.AppendSubMenu(new Menu(false,"程序6 ......."));
pg.AppendSubMenu(pg3);
function change()
{
exit.Text="关鸡!";
Menu.Update();
}
function add()
{
CXP_Menu.AppendSubMenu(new Menu(false,"我是新加的!"));
Menu.Update();
}
function del()
{
CXP_Menu.RemoveSubMenu(0);
}
//-->
</SCRIPT>
</HEAD>
<BODY bgcolor=#000000 leftmargin=0 topmargin=0 style="color:#FFFFFF" mce_style="color:#FFFFFF">
<input type="button" value="添加新菜单" onclick="add()">
<input type="button" value="把关机修改成关鸡^_^" onclick="change()">
<input type="button" value="删除顶菜单" onclick="del()">
good
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</BODY>
</HTML>
发表评论
-
jquery 传一个json对象到 java后台
2017-09-07 23:03 1669前台 var data={}; data.fid=&quo ... -
图标前台框架hcharts
2014-12-26 13:32 958http://www.hcharts.cn/demo/in ... -
Js操作Select大全
2012-11-09 20:43 1056转 http://www.cnblogs.com/Heris ... -
IE 无法运行javascript
2012-06-11 10:02 2210将下面的脚本编程一个bat文件,然后运行。 rundll32 ... -
javascript 判断页面加载完毕
2012-05-14 15:11 2233这个函数用户判断当页面加载完毕的时候,设置按钮上的文本如果页面 ... -
js获取节点 dom操作
2012-05-14 13:09 7115接口 nodeType常量 nod ... -
ExtJs表格控件Grid
2011-09-17 22:29 1365下面介绍三种ExtJs中最 ... -
ExtJs树TreePanel
2011-09-17 22:27 24411.创建一个简单(静态)的树 /** 创建 ... -
ExtJs表单FormPanel
2011-09-17 22:17 10831.简单表单实例 /** 简单表单实例(与JSP ... -
extjs 创建简单Meun,实现在TreePanel上面右键.
2011-09-17 22:02 5251/** 创建简单Menu */ fu ... -
jQuery 图片裁切
2011-01-12 17:59 1264jQuery 图片裁切 头像裁切软件 -
javascript对xml的解析
2010-10-28 12:58 1174<!DOCTYPE html PUBLIC " ... -
javascript图片大小图片尺寸代码
2010-10-11 13:19 2584<title>JS实现单击图片获取图片的原始尺寸代 ... -
遍历session
2010-09-14 09:59 1448在jsp中加入如下代码即可实现功能: <% Enum ... -
window.showModalDialog模式对话框
2010-09-09 08:58 1786基本介绍: showModalDialo ... -
jQuery 工具安装-jqueryWTP
2010-07-23 18:11 49181. jQuery 工具安装-jqueryWTP ... -
Spket的插件安装方法
2010-07-23 18:02 1392首先下载一个Spket的插件,下载过后就是一个spket-1. ... -
jQuery获取form表单元素的值
2010-07-07 17:32 13803var mykindtxt=$("#kind op ... -
JavaScript图片裁切主要是获取他们的大小发送给系统。
2010-06-13 09:42 1260有个函数添加了return 之后,他后面的代码就不在执行了。这 ... -
javascript获取远程图片的原来的尺寸大小
2010-06-13 09:19 1945<script> var img=null; ...
相关推荐
javascript右键菜单,兼容各种浏览器
JavaScript 右键菜单是一种常见的网页交互功能,它允许用户在网页元素上点击鼠标右键时弹出自定义的上下文菜单。这样的功能可以提供额外的操作选项,增强用户体验。本教程将深入探讨如何使用 JavaScript 实现这一...
在HTML+JavaScript右键菜单的实现中,JSP可能被用作后端服务,处理与菜单相关的数据请求或逻辑,例如根据用户状态或权限动态生成菜单项。 实现步骤如下: 1. 创建HTML结构:在HTML文件中,定义一个用于存放菜单的...
标题中的“右键菜单(javaScript)”指的是使用JavaScript编程语言实现的网页上下文菜单,即当用户在网页上点击鼠标右键时出现的功能性菜单。这种菜单可以替代或扩展浏览器默认的右键菜单,提供更加定制化的用户体验。...
### JavaScript右键菜单知识点解析 #### 一、项目概述 本项目主要介绍了一种通过JavaScript实现的右键菜单功能,该功能旨在为用户提供一个便捷、实用的上下文菜单选项。菜单项包括创建、修改和删除等功能,用户可以...
【dtree动态树】是一种基于...同时,JavaScript右键菜单可以根据用户的权限和上下文提供个性化的操作,如编辑、删除、复制等。通过结合dtree和JavaScript右键菜单,开发者可以创建出功能丰富的交互式Web界面。
JavaScript右键菜单的一个关键考虑是浏览器兼容性。由于不同的浏览器可能对事件处理和CSS样式支持程度不同,特别是老版本的Firefox(FF)和Internet Explorer(IE),开发者需要确保代码在这些浏览器中也能正常工作...
1. 用户体验:默认的浏览器右键菜单虽然基础,但可能无法满足所有网站的需求。自定义右键菜单可以提供更符合网站特性的操作选项,提高用户的操作效率和满意度。 2. 功能扩展:通过自定义右键菜单,开发者可以添加...
通过以上这些知识点,我们可以构建出一个功能丰富的JavaScript右键菜单系统,不仅可以提供个性化的用户体验,还可以根据业务需求添加更多功能,如复制、粘贴、保存等。在实际项目中,可以结合其他前端框架(如React...
3. **创建右键菜单**:在 `contextmenu` 事件的回调函数中,阻止浏览器默认的右键菜单弹出,并自定义我们的菜单。这通常涉及到CSS样式的设计以及DOM元素的创建。可以使用 `event.preventDefault()` 阻止默认菜单,...
通过监听`contextmenu`事件并调用`preventDefault()`方法,可以阻止浏览器的默认右键菜单。而在SVG中,我们可以结合CSS和JavaScript创建自定义菜单,以提供更丰富的用户体验。这些技术广泛应用于各种Web应用程序,...
总的来说,结合使用JavaScript实现的树形菜单和右键菜单,可以提供一个高效且直观的用户界面,让用户在复杂的层级数据中进行导航和操作。这种技术在内容管理系统(CMS)、文件管理工具以及其他需要展现层次关系的Web...
下面是一个简单的JavaScript示例,展示如何在`iframe`中禁用右键菜单: ```html <!DOCTYPE html> 禁用iframe右键菜单 嵌套页面的URL" width="100%" height="500"> // 获取iframe元素 var iframe = ...
总结来说,OpenLayers扩展右键菜单是一项提高地图应用交互性的技术,涉及到JavaScript事件处理、DOM操作、CSS样式设计以及地图交互逻辑。通过这样的扩展,我们可以让地图应用变得更加灵活且符合用户的使用习惯。
本文将深入探讨如何使用JavaScript实现右键菜单,特别是如何动态添加菜单项,并在菜单项中添加图标、文本以及处理点击事件。此外,我们还将讨论在不同浏览器(如IE、Firefox和Chrome)中的兼容性问题。 首先,右键...
本文将深入探讨如何利用JavaScript实现自定义鼠标右键菜单的功能。 首先,我们需要理解浏览器的默认行为。当用户在网页上点击鼠标右键时,通常会弹出一个包含基本浏览器操作(如"查看源代码"、"保存页面"等)的标准...
在这里,`oncontextmenu`属性阻止了浏览器默认的右键菜单,而`return false`阻止了事件的默认行为。然后,你可以用JavaScript来处理这个事件: ```javascript document.getElementById('contextTarget')....
通常,网页上的鼠标右键点击事件会被浏览器默认的上下文菜单所捕获,但通过自定义JavaScript代码,我们可以覆盖这个行为,创建出个性化且功能丰富的右键菜单。 首先,要理解JavaScript事件处理机制。在HTML元素上...
因此,我们的第一步是在客户端(浏览器)使用JavaScript或jQuery来捕获这个事件,然后防止默认的浏览器右键菜单出现。 ```javascript document.addEventListener('contextmenu', function(event) { event....
总结来说,OpenLayers右键菜单是通过自定义事件监听、HTML/CSS布局和JavaScript事件处理来实现的。这个“不错的demo”为我们提供了一个很好的起点,让我们能够为OpenLayers地图增加更多交互性,提升用户体验。通过...