`

鼠标右键选中copy功能(IE&FF兼容)

    博客分类:
  • js
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>鼠标右键菜单 </title>
	<style type="text/css">
	body{
		font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
		margin-left:0px;
	}
	#contextMenu{	/* The menu container */
		border:1px solid #202867;	/* Border around the entire menu */
		background-color:#FFF;	/* White background color of the menu */
		margin:0px;
		padding:0px;
		width:175px;	/* Width of context menu */
		font-family:arial;
		font-size:12px;
		background-image:url('images/gradient.gif');
		background-repeat:repeat-y;
		
		/* Never change these two values */
		display:none;
		position:absolute;

	}
	#contextMenu a{	/* Links in the context menu */
		color: #000;
		text-decoration:none;
		line-height:25px;
		vertical-align:middle;	
		height:28px;
		
		/* Don't change these 3 values */
		display:block;	
		width:100%;
		clear:both;
		
	}
	#contextMenu li{	/* Each menu item */
		list-style-type:none;
		padding:1px;
		margin:1px;
		cursor:pointer;	
		clear:both;
	}
	#contextMenu li div{	/* Dynamically created divs */
		cursor:pointer;	
	}
	#contextMenu .contextMenuHighlighted{	/* Highlighted context menu item */
		border:1px solid #000;
		padding:0px;
		background-color:#E2EBED;
	
	}
	#contextMenu img{
		border:0px;
	}
	#contextMenu .imageBox{	/* Dynamically created divs for images in the menu */

		float:left;
		padding-left:2px;
		padding-top:3px;
		vertical-align:middle;
		
		width: 30px;	/* IE 5.x */
		width/* */:/**/28px;	/* Other browsers */
		width: /**/28px;
	}
	#contextMenu .itemTxt{
		float:left;		
		width: 120px;	/* IE 5.x */
		width/* */:/**/140px;	/* Other browsers */
		width: /**/140px;		
	}
	</style>
	<script type="text/javascript">
	
	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, October 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/

	var myvalue;
	var contextMenuObj;
	var MSIE = navigator.userAgent.indexOf('MSIE')?true:false;
	var navigatorVersion = navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,'$1')/1;	
	var activeContextMenuItem = false;
	function highlightContextMenuItem()
	{
		this.className='contextMenuHighlighted';
	}
	
	function deHighlightContextMenuItem()
	{
		this.className='';
	}
	
	function showContextMenu(e)
	 {
	  contextMenuSource = this;
	  if(activeContextMenuItem)activeContextMenuItem.className='';
	  if(document.all)e = event;
	  var xPos = e.clientX;
	  if(xPos + contextMenuObj.offsetWidth > (document.documentElement.offsetWidth-20)){
	   xPos = xPos + (document.documentElement.offsetWidth - (xPos + contextMenuObj.offsetWidth)) - 20; 
	  }
	  
	  var yPos = e.clientY;
	  if(window.document.body.scrollTop > 0)
	    {
	      yPos = (window.screen.Height) ? e.clientY + window.document.body.scrollTop -20 : e.clientY -20;
	    }
	    else if (window.pageYOffset) 
	    {
	      yPos = (window.pageYOffset > 0) ? e.clientY + window.pageYOffset -20 : e.clientY -20;
	    }
	    else
	    { yPos = e.clientY -20; }
	  /* * */
	  contextMenuObj.style.left = xPos + 'px';
	  contextMenuObj.style.top = yPos + 'px';
	  contextMenuObj.style.display='block';
	  return false; 
	}

	function hideContextMenu(e)
	{
		if(document.all) e = event;
		if(e.button==0 && !MSIE){
			
		}else{
			contextMenuObj.style.display='none';
		}
	}
	
	function initContextMenu()
	{
		contextMenuObj = document.getElementById('contextMenu');
		contextMenuObj.style.display = 'block';
		var menuItems = contextMenuObj.getElementsByTagName('LI');
		for(var no=0;no<menuItems.length;no++){
			menuItems[no].onmouseover = highlightContextMenuItem;
			menuItems[no].onmouseout = deHighlightContextMenuItem;
			
			var aTag = menuItems[no].getElementsByTagName('A')[0];
			
			var img = menuItems[no].getElementsByTagName('IMG')[0];
			if(img){
				var div = document.createElement('DIV');
				div.className = 'imageBox';
				div.appendChild(img);
				
				if(MSIE && navigatorVersion<6){
					aTag.style.paddingLeft = '0px';
				}
				
				var divTxt = document.createElement('DIV');	
				divTxt.className='itemTxt';
				divTxt.innerHTML = aTag.innerHTML;
				
				aTag.innerHTML = '';
				aTag.appendChild(div);
				aTag.appendChild(divTxt);
				if(MSIE && navigatorVersion<6){
					div.style.position = 'absolute';
					div.style.left = '2px';
					divTxt.style.paddingLeft = '15px';
				}
				
				if(!document.all){
					var clearDiv = document.createElement('DIV');
					clearDiv.style.clear = 'both';
					aTag.appendChild(clearDiv);		
				}
			}else{
				if(MSIE && navigatorVersion<6){
					aTag.style.paddingLeft = '15px';
					aTag.style.width = (aTag.offsetWidth - 30) + 'px';
				}else{
					aTag.style.paddingLeft = '30px';
					aTag.style.width = (aTag.offsetWidth - 60) + 'px';
				}
			}
		}
		contextMenuObj.style.display = 'none';		
		document.documentElement.oncontextmenu = showContextMenu;
		document.documentElement.onclick = hideContextMenu;
	}
	
	  function SelectText()
        {
          try{
            var selecter=window.getSelection();
            if(selecter!=null&&selecter.trim()!=""){
            myvalue=selecter;

              }
          }catch(err){
        
            var selecter;
            var s;
            
            if(navigator.userAgent.indexOf("MSIE")>0){
             selecter=document.selection.createRange();
              myvalue=selecter.text;
              
            }else if(navigator.userAgent.indexOf("Firefox")>0){
            selecter=window.getSelection().getRangeAt(0);
            myvalue=selecter;
            
            }
          }
        }
       function CopyToText(){
       document.getElementById('txt').value=myvalue; 
       //document.all.txt.value=myvalue;
       } 
        String.prototype.trim=function()
        {
          return this.replace(/(^\s*)|(\s*$)/g,"");
        }

	</script>

</head>
<body>
<ul id="contextMenu">
	<li><a href="http://www.sharejs.com"><img src="images/button.gif">Home</a></li>
	<li><a href="#" onclick="document.getElementById('htmlSource').style.display='block';return false">View HTML</a></li>
	<li><a href="#" onclick="CopyToText()">拷贝到文本区</a></li>
	<li><a href="#">Menu item 4</a></li>
</ul>
<input   type="text"   size=60   name="txt" id="txt"> 
<br>
<script type="text/javascript">
initContextMenu();
</script>

<span onClick="SelectText()">河中鱼类离奇死亡,下游居民频染怪病,沿岸植物不断变异,是残留农药?还是生化攻击?敬请关注今晚CCTV-10《科学探索》,即将播出的专题节目:《神秘的河边洗脚人--中国男足》</span>

</body>
</html>

 

分享到:
评论

相关推荐

    JS设置鼠标右键菜单

    本文将深入探讨如何利用JavaScript实现自定义鼠标右键菜单的功能。 首先,我们需要理解浏览器的默认行为。当用户在网页上点击鼠标右键时,通常会弹出一个包含基本浏览器操作(如"查看源代码"、"保存页面"等)的标准...

    鼠标右键菜单(JS)

    在网页开发中,鼠标右键菜单通常用于提供用户自定义的操作选项,以增强用户体验和交互性。本主题将深入探讨如何使用JavaScript(JS)来实现这样的功能。 首先,我们需要了解JavaScript的基本概念。JavaScript是一种...

    JS鼠标右键菜单

    在网页中实现鼠标右键菜单是JS的一个常见应用,它可以帮助开发者自定义浏览器默认的右键菜单,提供更加个性化和功能丰富的用户体验。 在网页中,通常我们通过监听鼠标的上下文菜单事件(contextmenu)来实现自定义...

    VB鼠标右键菜单制作

    右键菜单,也称为上下文菜单,是在用户点击鼠标右键时出现的快捷操作选项,通常用于提供与当前上下文相关的功能。在VB中实现这一功能,我们需要了解以下几个关键知识点: 1. **事件处理程序**: - 在VB中,我们...

    好看的javascript网页鼠标右键菜单

    通常,网页上的鼠标右键点击事件会被浏览器默认的上下文菜单所捕获,但通过自定义JavaScript代码,我们可以覆盖这个行为,创建出个性化且功能丰富的右键菜单。 首先,要理解JavaScript事件处理机制。在HTML元素上...

    CxGrid右键增强功能源代码

    //右键菜单 CopyCell:TMenuItem;//复制单元格内容 CopyList:TMenuItem;//复制选中列内容 CopyLine:TMenuItem;//复制选中行内容 PastLine:TMenuItem;//粘贴#9分隔符数据 DerFiles:TMenuItem;//导出文件 ...

    让ubuntu终端支持鼠标粘贴的安装包

    描述中提到的 "gnome-terminal with automatic copy on selection and paste with right button" 表明这是一个更新或增强gnome-terminal功能的包,它将添加两项便捷的交互方式:一是选中文本后自动复制到剪贴板;...

    鼠标右键上下文菜单配置js代码插件

    通过这款鼠标右键上下文菜单配置js代码插件,开发者可以轻松地在网页中创建个性化、功能丰富的右键菜单,提高用户的操作效率。在实际应用中,可以根据项目需求进一步优化和扩展,例如增加菜单项的动态加载、国际化...

    鼠标右键增加文件夹复制移动

    为此,我们可以为鼠标右键菜单添加“移动到”和“复制到”文件夹的功能选项,这将极大地提高工作效率。 首先,我们要理解“移动到”和“复制到”的概念。在Windows操作系统中,"移动"文件或文件夹意味着将它们从源...

    C#WPF 右键菜单 显示 事件触发 测试通过

    C#WPF 右键菜单 显示 事件触发 测试通过 &lt;!-- 设置右键菜单 --&gt; 编辑"&gt; &lt;!-- 调用系统命令 --&gt; &lt;MenuItem Command="Copy"&gt; &lt;MenuItem Command="Cut"&gt;&lt;/MenuItem&gt; &lt;MenuItem Command="Paste"&gt;&lt;/MenuItem&gt; ...

    用JS实现右键的复制,拈帖和剪切功能

    在Web开发过程中,有时我们需要模拟浏览器自带的右键菜单中的复制(Copy)、粘贴(Paste)以及剪切(Cut)功能。这不仅能够增强用户体验,还能在一定程度上提升网站的互动性和功能性。本文将详细介绍如何利用...

    WPF添加右键功能

    在Windows Presentation Foundation(WPF)中,为用户界面(UI)元素添加右键功能是常见的需求,这通常涉及到创建上下文菜单(Context Menu)并将其与控件绑定。上下文菜单提供了一种方便的方式来显示与特定UI元素...

    js实现兼容IE和FF的复制功能

    在JavaScript编程中,实现兼容不同浏览器的复制功能是一项常见的需求,特别是考虑到Internet Explorer(IE)和Firefox等浏览器之间的差异。本文将深入探讨如何利用JavaScript来实现在这些浏览器中复制文本到剪贴板的...

    JS_FF--IE (兼容_数据直接添加到剪切板)

    【标题】: "JS_FF--IE (兼容_数据直接添加到剪切板)" 涉及的知识点 在JavaScript中,复制文本到剪贴板的功能是通过与浏览器的API交互来实现的。这个功能在不同的浏览器中可能有不同的实现方式,因为它们支持的API...

    右键菜单 增加 复制 剪贴 粘贴功能

    例如,在触控设备上,用户可能更倾向于使用鼠标右键菜单进行这些操作。在描述中提到的更新,意味着用户现在只需在需要操作的对象上右键单击,然后选择相应的选项(复制、剪贴或粘贴),就可以执行这些动作。 至于...

    FF--IE (兼容) 数据直接添加到剪切板

    这个给定的文件介绍了一个JavaScript函数`CopyContent`,该函数用于在Firefox(FF)和Internet Explorer(IE)浏览器中兼容性地将数据添加到用户的剪贴板。 首先,我们要理解JavaScript操作剪贴板的基本概念。在...

    js自定义右键菜单

    在JavaScript(JS)中,自定义右键菜单是一项常见的需求,尤其在开发Web应用程序时,为了提供更加个性化和功能丰富的用户体验。默认情况下,浏览器提供的右键菜单只包含基本的选项,如“复制”、“粘贴”等。通过...

    Qt编程基础 - 第六章-窗体 - 6.4、QWidget 自定义右键菜单

    本节将深入探讨如何在QWidget类的基础上自定义右键菜单,这是提高用户交互性和应用程序功能的重要手段。在Qt库中,我们可以利用QMenu和QAction来创建并管理这种自定义的上下文菜单。 首先,了解QMenu和QAction的...

    深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制

    禁止复制可以通过监听beforecopy事件来阻止复制操作,同时通过onselect和oncopy事件来清除已经选中的文本,这样即使用户通过其他方式触发了复制操作,也不会有任何内容被选中和复制。 ### 粗暴版屏蔽右键和复制的...

Global site tag (gtag.js) - Google Analytics