>  기사  >  웹 프론트엔드  >  경량 XHTML 마우스 오른쪽 버튼 클릭 메뉴 [IE 및 Firefox 지원]_javascript 기술

경량 XHTML 마우스 오른쪽 버튼 클릭 메뉴 [IE 및 Firefox 지원]_javascript 기술

WBOY
WBOY원래의
2016-05-16 19:20:08903검색

현재 인터넷에 유통되는 많은 오른쪽 클릭 메뉴는 XHTML을 지원하지 않습니다. 주로 document.body와 document.documentElement의 차이 때문입니다.
또 다른 점은 오른쪽 클릭 메뉴 프로그램이 너무 크다는 점입니다. 그래서 IE와 Firefox를 지원하는 미니 오른쪽 클릭 메뉴를 작성했습니다.


[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다 <script> /** *JRightMenu类,在浏览器里显示用户定制右键菜单 *[注意]:只适用于XHTML *@author brull *@email brull@163.com *@date 2007-01-24 */ /** *@param menuItem 菜单显示内容,是一个数组 *@param handle 对应menuItem菜单的处理js代码段,同样是个数组 */ JRightMenu=function (menuItem,handle){ var rightMenu=document.createElement("div"); var menuInnerHTML="";//菜单容器里的HTML内容 var $items=this.menuItem=menuItem; var $handle=this.handle=handle; rightMenu.id="rightMenu";//id for(var i in $items){ if($items[i].indexOf("<hr")!=-1) menuInnerHTML+=$items[i]; else menuInnerHTML+="<span class=&#146;menuItem&#146; onmouseover=&#146;this.style.backgroundColor=\"#3e80ca\";window.status=this.innerHTML;&#146; onmouseout=&#146;this.style.backgroundColor=\"\";window.status=\"\"&#146; onclick=\""+handle[i]+"\" >" +$items[i] +""; } rightMenu.innerHTML=menuInnerHTML; rightMenu.style.visibility = "visible"; rightMenu.onmousedown=function(e){ e=e||window.event; document.all?e.cancelBubble=true:e.stopPropagation(); } rightMenu.onselectstart=function(){ return false; } document.body.appendChild(rightMenu); this.menu=rightMenu;//方便别的方法引用 }; JRightMenu.prototype.show=function(e){ e=e||window.event; var root=document.documentElement; var x = root.scrollLeft+e.clientX;//菜单左上角横坐标 var y = root.scrollTop+e.clientY;//菜单左上角纵坐标 if (this.menu.clientWidth+e.clientX > root.clientWidth){ x=x-this.menu.clientWidth; } if (this.menu.clientHeight+e.clientY > root.clientHeight){ y=y-this.menu.clientHeight; } this.menu.style.left = x+"px"; this.menu.style.top = y+"px"; this.menu.style.visibility = "visible"; return false; } JRightMenu.prototype.hidden=function() { this.menu.style.visibility = "hidden"; } </script>]<script> window.onload=function(){ rightMenu=new JRightMenu(["it&#146;s mine!","it&#146;s yours!"],["alert(&#146;it is mine!&#146;)","alert(&#146;it is yours!&#146;)"]); } document.oncontextmenu=function(evt){return rightMenu.show(evt);}; document.onclick=function(){rightMenu.hidden();} </script>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.