<style>
.cMenu {
FILTER: alpha(opacity=150);BACKGROUND-COLOR: #D6D3CE;BORDER-BOTTOM: #666666 2px solid;
BORDER-LEFT: #E4E4E4 2px solid; BORDER-RIGHT: #666666 2px solid; BORDER-TOP: #E4E4E4
2px solid; COLOR: #000000; CURSOR: default; FONT-SIZE: 9pt; color:#000000;FONT-
WEIGHT: normal; LINE-HEIGHT: 20px; POSITION: absolute; VISIBILITY: hidden; WIDTH:
110px
}
.menuitems {
BACKGROUND-COLOR: #D6D3CE;
background:#D6D3CE;
border:none
align:left;
text-align:left;
width:100%;
border-width:0px;
font-size:9pt;
MARGIN: 0px;
PADDING-BOTTOM: 0px;
PADDING-LEFT: 3px;
PADDING-RIGHT: 3px;
PADDING-TOP: 0px;
}
</style>
<script>
var currentcontextmenuevent;
var currentcontextmenutextobj=null;
function calldefinedfunction(i_index){
switch(i_index){
case 1: //后退
history.back() ;
break;
case 2: //查看源文件
window.location = "view-source:" + window.location.href;
break;
case 3: //刷新
window.location.reload();
break ;
case 4: //添加到收藏夹
window.external.AddFavorite(location.href, document.title);
break;
case 5://全选
document.execCommand("selectAll")
break;
case 6://复制
document.execCommand('copy');
break;
case 7://粘贴
if(currentcontextmenutextobj!=null){
currentcontextmenutextobj.focus();
document.execCommand('Paste');
}
break;
case 8://关闭
top.close();
break;
default://自定义操作
try{eval(i_index)}catch(e){}
}
}
//获取右键事件,纪录当前菜单对象,显示当前菜单
function document.oncontextmenu(){
hiddenMenu();
var temp=event.srcElement;
currentcontextmenutextobj=temp;
while(temp.parentElement!=null && temp.contextmenu_obj==undefined){
temp=temp.parentElement
}
if(temp.contextmenu_obj!=undefined){
if(eval(temp.contextmenu_obj)!=null)
currentcontextmenuevent=eval(temp.contextmenu_obj);
else
return false;
}else if(temp.tagName=="HTML"){
//未定义右键菜单或者没有任何标签引用了菜单
if(document.all("ie5menu")!=null){
if(document.all("ie5menu").tagName!="DIV")return false;
}else{
var oDiv=document.createElement('<div id="ie5menu" class="cMenu" style="visibility:hidden;z-index:50000000"></div>');
document.body.appendChild(oDiv);
var str_table='<table width="100%" class="menuitems" ><tbody id="contextmenu_public" width="100%"><tr><td width="100%" class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" width="100%" type="button" class="menuitems" value="复制(C)" name="copybutton" οnclick="calldefinedfunction(6)"/></td></tr><tr><td class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" type="button" class="menuitems" value="粘贴(P)" name="pastebutton" οnclick="calldefinedfunction(7)"/></td></tr><tr><td class="menuitems"><hr size="2" style="BORDER-TOP: #888888 1px solid;BORDER-BOTTOM: #E4E4E4 1px solid;" width="100%"/></td></tr>';
str_table+='<tr><td width="100%" class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" width="100%" type="button" class="menuitems" value="刷新(R)" name="refreshbutton" οnclick="calldefinedfunction(3)"/></td></tr>';
str_table+='<tr><td width="100%" class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" width="100%" type="button" class="menuitems" value="查看源文件(V)" name="viewsource" οnclick="calldefinedfunction(2)"/></td></tr>';
str_table+='<tr><td class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" width="100%" type="button" class="menuitems" value="关闭窗口(K)" name="closebutton" οnclick="calldefinedfunction(8)"/></td></tr>'
str_table+='</tbody></table>';
document.all("ie5menu").innerHTML=str_table;
}
currentcontextmenuevent=document.all("ie5menu")
}
ShowMenu();
return false;
}
//获取左键事件,并调用隐藏当前菜单函数
function document.onclick(){
hiddenMenu();
}
//显示层菜单
function ShowMenu(){
hiddenMenu();//初始、把所有层隐藏
var rightedge=document.body.clientWidth-event.clientX
var bottomedge=document.body.clientHeight-event.clientY
var LayerID=currentcontextmenuevent;
//定位层的位置、显示层
if (rightedge<LayerID.offsetWidth){
LayerID.style.left=document.body.scrollLeft+event.clientX-LayerID.offsetWidth;
}else{
LayerID.style.left=document.body.scrollLeft+event.clientX;
}
if (bottomedge<LayerID.offsetHeight){
LayerID.style.top=document.body.scrollTop+event.clientY-LayerID.offsetHeight;
}else{
LayerID.style.top=document.body.scrollTop+event.clientY;
}
LayerID.style.visibility="visible";
return false;
}
//将当前菜单隐藏起来
function hiddenMenu(){
if(currentcontextmenuevent!=undefined && currentcontextmenuevent!=null)
currentcontextmenuevent.style.visibility="hidden";
}
//菜单鼠标onMouseOut事件
function contextmenu_mouseover(){
event.srcElement.style.backgroundColor="highlight";
event.srcElement.style.color="white"
}
//菜单鼠标onMouseOver事件
function contextmenu_mouseout(){
event.srcElement.style.backgroundColor="";
event.srcElement.style.color="#000000"
}
//自定义菜单
function definemenuitem(itemname,itemmethod){
var str_html='<tr><td width="100%" class="menuitems"><input onMouseOut="contextmenu_mouseout(this)" onMouseOver="contextmenu_mouseover(this)" style="cursor:hand" width="100%" type="button" class="menuitems" value="'+itemname+'" οnclick="calldefinedfunction(/''+itemmethod+'/')"/></td></tr>'
document.write(str_html);
}
function document.onkeydown(){
//屏蔽f5
if(event.keyCode==116){
event.keyCode=0;
return false
}
//屏蔽clt+n
if(event.ctrlKey && event.keyCode==78){
return false;
}
if(event.keyCode==86){
//V键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("viewsource")!=null){
currentcontextmenuevent.all("viewsource").click();
return false;
}
}
}
if(event.keyCode==82){
//R键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("refreshbutton")!=null){
currentcontextmenuevent.all("refreshbutton").click();
return false;
}
}
}
if(event.keyCode==70){
//F键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("addselectionbutton")!=null){
currentcontextmenuevent.all("addselectionbutton").click();
return false;
}
}
}
if(event.keyCode==67){
//C键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("copybutton")!=null){
currentcontextmenuevent.all("copybutton").click();
return false;
}
}
}
if(event.keyCode==80){
//P键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("pastebutton")!=null){
currentcontextmenuevent.all("pastebutton").click();
return false;
}
}
}
if(event.keyCode==75){
//K键
if(currentcontextmenuevent!=null && currentcontextmenuevent.style.visibility!="hidden"){
if(currentcontextmenuevent.all("closebutton")!=null){
currentcontextmenuevent.all("closebutton").click();
return false;
}
}
}
}
</script>
测试复制粘贴文本区
<textarea>