- 浏览: 1468891 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (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 1618前台 var data={}; data.fid=&quo ... -
图标前台框架hcharts
2014-12-26 13:32 880http://www.hcharts.cn/demo/in ... -
Js操作Select大全
2012-11-09 20:43 1018转 http://www.cnblogs.com/Heris ... -
IE 无法运行javascript
2012-06-11 10:02 2169将下面的脚本编程一个bat文件,然后运行。 rundll32 ... -
javascript 判断页面加载完毕
2012-05-14 15:11 2192这个函数用户判断当页面加载完毕的时候,设置按钮上的文本如果页面 ... -
js获取节点 dom操作
2012-05-14 13:09 7067接口 nodeType常量 nod ... -
ExtJs表格控件Grid
2011-09-17 22:29 1323下面介绍三种ExtJs中最 ... -
ExtJs树TreePanel
2011-09-17 22:27 23841.创建一个简单(静态)的树 /** 创建 ... -
ExtJs表单FormPanel
2011-09-17 22:17 10471.简单表单实例 /** 简单表单实例(与JSP ... -
extjs 创建简单Meun,实现在TreePanel上面右键.
2011-09-17 22:02 5212/** 创建简单Menu */ fu ... -
jQuery 图片裁切
2011-01-12 17:59 1197jQuery 图片裁切 头像裁切软件 -
javascript对xml的解析
2010-10-28 12:58 1128<!DOCTYPE html PUBLIC " ... -
javascript图片大小图片尺寸代码
2010-10-11 13:19 2544<title>JS实现单击图片获取图片的原始尺寸代 ... -
遍历session
2010-09-14 09:59 1372在jsp中加入如下代码即可实现功能: <% Enum ... -
window.showModalDialog模式对话框
2010-09-09 08:58 1749基本介绍: showModalDialo ... -
jQuery 工具安装-jqueryWTP
2010-07-23 18:11 48671. jQuery 工具安装-jqueryWTP ... -
Spket的插件安装方法
2010-07-23 18:02 1358首先下载一个Spket的插件,下载过后就是一个spket-1. ... -
jQuery获取form表单元素的值
2010-07-07 17:32 13766var mykindtxt=$("#kind op ... -
JavaScript图片裁切主要是获取他们的大小发送给系统。
2010-06-13 09:42 1194有个函数添加了return 之后,他后面的代码就不在执行了。这 ... -
javascript获取远程图片的原来的尺寸大小
2010-06-13 09:19 1909<script> var img=null; ...
相关推荐
javascript右键菜单,兼容各种浏览器
这是一个用jquery和javascript写的自定义网页右键菜单,如果你需要覆盖网页上浏览器自带的右键菜单,没错,就是它了,绝对超值!!!
基于 vue 的鼠标右键菜单事件,本组件提供右键菜单的显示和隐藏,可自定义菜单,以及菜单列的样式
阻止浏览器的默认行为,也就是阻止浏览器右键菜单的出现,并且右键出现的是自己制作的菜单。
为dhtmlXTree树上的每一个节点添加右键菜单。附:在树上的节点上点右键时才会生成菜单,空白区域单击时不会生成菜单。 分析: 1、用 dhtmlXTree + dhtmlxmenu 实现。 2、 用dhtmlxmenu生成菜单的部分代码: ...
chrome浏览器右键菜单扩展程序源代码,划词搜索,自定义搜索引擎
GalMenu.js是一款仿Key社游戏风格的右键菜单特效jQuery插件。该插件将原生的浏览器右键菜单转换为一个动画的圆形菜单,并且带音效,效果非常的炫酷。
有时候需要屏蔽部分区域内的右键菜单,下面的代码大家可以测试下。
即使是JavaScript被禁止,这些右键菜单仍然能正常显示。所以,如果你想尊重用户的选择,最好的方法是用JavaScript来创建这些菜单元素,注入到DOM元素里,这样,当JavaScript被禁止时,这些右键菜单也不显示了。 ...
自定义html元素鼠标右键菜单 实现思路 在触发contextmenu事件时,取消默认行为(也就是阻止浏览器显示自带的菜单),获取右键事件对象,来确定鼠标的点击位置,作为显示菜单的left和top值 编码实现 <!DOCTYPE html>...
在Web端,通常是不需要右键菜单,各个浏览器也有自己的右键菜单。但是对于一些特殊的网页,是需要右键菜单来增加用户体验的,比如百度音乐,QQ邮箱,相信大家都在Web端使用过右键菜单了,现在来分享一下如何实现,...
:rocket: 仅一行禁用Web开发人员工具 | 在线试用/文件| 版本日志| 吉蒂 1.快速使用 1.1 npm参考 npm i disable-devtool import disableDevtool from 'disable-devtool' ; disableDevtool ( ) ;...
在右键菜单中添加自定义脚本,链接,子菜单或自定义CSS,然后从右键菜单中执行所有您想做的事情。 具有针对用户脚本的完全GreaseMonkey兼容性和针对用户样式的时尚兼容性。 演示版 一个演示可以在找到。 该演示当然...
浏览器标签、HTML页面能播放视频、下载记录、JS交互(能调用原生相机、调用VLC集成能力:流视频播放)、软件更新、自定义右键菜单、F11全屏模式、F12调试模式、F5刷新、ALT+F5强制刷新、系统配置等功能、网络请求...
更有经验的用户很容易就能绕过禁用右键的问题,而访问大部分网页代码本身就是web浏览器的一个基本功能,根本不需要右键。 缺点 有很多方法可以绕过“没有右键脚本”,而实际上,这种脚本的唯一效果就是惹恼那些在web...
下面我们就来看看如何用Javascript代码实现浏览器菜单命令(以下代码在Windows XP下的浏览器中调试通过)。 一、【文件(F)】菜单中的命令的实现 1、〖打开〗命令的实现 [格式]:document.execCommand(“open”) [说明]...
Baidu-Context-Menu-EdgeChrome浏览器有一个实用的功能:当你选中一段文本,点鼠标右键,弹出菜单中会出现“用百度搜索”,这个功能便于自动搜索选中的文本。Edge浏览器没有这项功能,不得不说很是遗憾。于是写了这...
内容索引:脚本资源,Ajax/JavaScript,仿XP,右键菜单 JavaScript+CSS仿windows xp风格的右键多级联动菜单,可自定义样式和触发程序,兼容IE/火狐、chrome、safari等众多浏览器,做的风格还挺像,鼠标在方框区域右键...
本文实例为大家分享了JavaScript实现点击自制菜单效果的具体代码,供大家参考,具体内容如下 应用场景:当我们希望用户再点击右键的时候不希望弹出浏览器的默认菜单时,需要阻止浏览器默认行为,并执行我们想要的...
* 在网页内的文本框中选择文本, 鼠标右键菜单中没有 "粘贴" 项目. [用户界面] * 某些情况下, 取消 "后台标签显示关闭按钮" 后, 按钮依旧会显示, 切换标签后消失. * 在资源嗅探器中, 资源URL过长时, Tooltip 会出现...