ZeroClipboard 不支持手机浏览器复制 H5页面的几种复制方式分享

ZeroClipboard能很好的兼容各大主流的浏览器,实现复制功能,所以在PC端建议使用ZeroClipboard来达到这个功能。

但是ZeroClipboard是基于flash来实现复制的,所以在手机上无法使用,这里给大家分享2个方式,在手机上可以实现复制功能,但不能兼容所有的浏览器,比如手机版的QQ浏览器就不支持,其他浏览器暂未测试。

第一种:

优点:代码简单,容易理解。

缺点:能够支持复制的标签不多,比如将textarea标签换成p标签,div标签,span标签,等,就不支持了,input的value可以支持。其他暂未测试。反正不够灵活。

以下是完整代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />
		<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
		</script>
		<title></title>
	</head>
	<body>
		<input type="button" id="fuzhi" value="点击复制"/>	
		<br /><br />
		<textarea cols="42" rows="4" id="b"></textarea>
	</body>
	<script type="text/javascript">
		$(document).ready(function(){				
			$("#fuzhi").click(function(){
				var Url2 = document.getElementById("b");
				Url2.select();
				document.execCommand("Copy");
				alert("已复制好,可贴粘。");
			});			
		});		
	</script>
</html>


第二种:

优点:能够兼容绝大部分的标签,想复制哪里就复制哪里。

缺点:代码多,不太容易理解

以下是完整版的代码演示:

<!DOCTYPE html>    
<html lang="en">    
<head>    
    <meta charset="UTF-8">    
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>   
    <script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script>    
    <title>移动端复制到剪贴板!</title>    
</head>    
<body>    
	<p>
    	哈哈
    	<span id="target">
        	你没看错,就是复制的这里
        </span>
    </p>    
	<button class="btn" data-clipboard-action="copy" data-clipboard-target="#target" id="copy_btn">    
    	复制按钮    
	</button>       
</body>    
<script>    
    $(document).ready(function(){    
        var targetText=$("#target").text();    
        var clipboard = new Clipboard('#copy_btn');     
        clipboard.on('success', function(e) {    
            console.info('Action:', e.action);    
            console.info('Text:', e.text);    
            console.info('Trigger:', e.trigger);    
            alert("复制成功");     
            e.clearSelection();    
        });    
    });    
</script>    
</html> 


好了,以上就是在手机端建议使用的2中复制方式,如果你还有其他的方式,欢迎在下方评论区说出你的方法!3Q


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: zeroClipboard是一个JavaScript库,它提供了一种简单的方式复制文本到剪贴板。如果您在使用zeroClipboard时无法触发复制操作,请尝试以下解决方案: 1. 确认您已正确初始化zeroClipboard,并将其绑定到要复制的元素上。请注意,一些浏览器(例如Safari)要求元素必须在用户交互之后才能触发复制操作。如果您的元素没有绑定到zeroClipboard,请尝试重新绑定它。 2. 确保您的代码没有被浏览器的弹出窗口拦截程序所阻止。这可以通过在浏览器控制台中查看错误信息来检查。 3. 如果您的代码在HTTPS页面上运行,您需要确保zeroClipboard的swf文件也是从HTTPS地址加载的。 4. 如果您的代码在本地文件系统上运行,您需要确保您已经通过localhost或127.0.0.1打开了页面,因为某些浏览器不允许从本地文件系统上的页面复制到剪贴板。 如果以上解决方案无法解决问题,请尝试在问题上下文中提供更多信息,以便我们可以更好地帮助您。 ### 回答2: zeroClipboard是一个用于复制文本到剪贴板的JavaScript库。通常情况下,使用该库可以通过点击按钮或其他交互事件,将特定的文本复制到剪贴板中。然而,如果zeroClipboard在您的代码中没有触发copy,可能是由于以下几个原因: 1. 缺少必要的JavaScript代码:您需要在网页中正确引入zeroClipboard库,并在您的代码中调用相应的方法或事件。确保在正确的位置使用了copy事件,才能将文本复制到剪贴板。 2. 兼容性问题:zeroClipboard可能与某些浏览器或版本不兼容,导致copy事件无法被触发。为了解决这个问题,您可以尝试使用其他复制文本到剪贴板的解决方案,或者查找zeroClipboard的最新版本以获取更好的兼容性。 3. 代码错误:检查您的代码是否存在错误,可能存在拼写错误、语法错误或逻辑错误,这些错误可能导致zeroClipboard不会触发copy事件。仔细检查代码并进行调试将有助于找到并解决问题。 如果您仍然无法解决问题,建议查看zeroClipboard官方文档或寻求开发社区的帮助,这些资源可以提供更多关于zeroClipboard的使用方法和调试技巧。 ### 回答3: zeroClipboard 是一个简单易用的 JavaScript 库,用于实现网页上的复制文本功能。然而,有时候可能会遇到 zeroClipboard 不触发 copy 事件的情况。 造成这个问题的原因可能有多种,下面列举一些常见的可能性和解决方法。 1. Flash 版本不兼容zeroClipboard 使用 Flash 来实现复制功能,如果用户的 Flash 版本过低或者浏览器禁用了 Flash 插件,可能会导致 zeroClipboard 不起作用。解决办法是确保用户的 Flash 版本符合要求,并在相应位置添加 Flash 的安装提示。 2. 非用户交互触发:某些浏览器要求用户必须通过点击等方式页面进行交互,才能触发复制操作。因此,如果 zeroClipboard 的 copy 操作没有经过用户的交互操作,可能会被浏览器拦截。解决办法是在复制操作前,添加一个交互操作,比如点击按钮或链接。 3. 其他 JavaScript 冲突:如果页面中存在其他与 zeroClipboard 冲突的 JavaScript 代码,可能会导致该库无法正常工作。解决办法是排除冲突代码的影响,可以通过逐一排查或者使用浏览器的开发者工具来定位冲突的脚本,并做相应的调整或修改。 4. 安全性限制:某些浏览器浏览器插件可能会对复制操作进行安全性限制,从而导致 zeroClipboard 无法触发 copy 事件。解决办法是查阅相关安全性政策,并适当调整脚本或页面的设置以符合对应的限制。 总结来说,解决 zeroClipboard 不触发 copy 事件的问题,需要确认 Flash 版本兼容性、加入用户交互操作、排除其他 JavaScript 冲突、遵循安全性限制。根据具体情况,选择对应的解决方法,可以使 zeroClipboard复制功能正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值