Saber 酱的抱枕

Fly me to the moon

03/10
2015
学习

使用ZeroClipboard进行复制的简单示例

众所周知,使用js来复制网页内容存在浏览器兼容问题,而ZeroClipboard通过flash来将完成复制,算是解决了这个问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
	<title>ZeroClipboard复制功能简单测试</title>
	<script type="text/javascript" src="jquery.min.js"></script>
	<script type="text/javascript" src="ZeroClipboard.js"></script>
</head>
<body>
	<input type="text" name="wantCopy" id="wantCopy" value="" style="display: none;"/>
	<button id="copyButton">复制当前网址</button>
	<script type="text/javascript">
		document.getElementById("wantCopy").value=window.location.href;
	</script>
	<script type="text/javascript">
		$(function(){
			init();
		});
		function init() {
			var clip = new ZeroClipboard.Client(); // 新建一个对象
			clip.setHandCursor( true );
			clip.setText($('#wantCopy').val()); // 填写要复制的内容的id
			clip.addEventListener( "mouseUp", function(client) {
				alert("复制网址成功!");
			});
			// 最后注册用来复制的button按钮,参数为 id。点击这个 button 就会复制。
			//这个 button 不一定要求是一个 input 按钮,也可以是其他 DOM 元素。
			clip.glue("copyButton"); // 和上一句位置不可调换
		}
	</script>
</body>
</html>

查看demo
Read More →

使用ZeroClipboard进行复制的简单示例

11/1
2014
学习

js出错排查的一些注意事项

最近做的网站,都已经上线了,但是同事的百度浏览器用兼容模式查看发现superslide没有生效,原本应该是滚动显示的banner图一张张竖着排了下来。后来用ietester的ie8模式重现了此问题。虽然确实从代码上找出了些问题,但还是让我感叹低版本ie8的纠错容错能力太差了。

1.需要的js是否都加载了
2.有无语法错误,例如js被注释,或js最后的结束标记复制的时候留在了原地,导致标签错误
3.jq放在所有js的最前面
4.查看是否引用了多个jq,如头部模板引入了一个,底部模板又引入了一个(即使是同一个jq文件),保留一个就行
5.如果底部有很多乱七八糟的js,例如广告的、统计的,那么把我们直接用script标签写出的js代码移到底部前面去,以免受到其影响。
6.如果有些选择器已经不存在了,删除对应的js代码。例如首页有两个地方用到了supersild,二级页面却只用了一个。如果直接复制第一个页面的js代码到二级页面,那么第二个元素不存在,ie就会报错。
7.如果怀疑有js和jq有冲突,可以试下用稍低版本的jq,或者把js一个个删除排查。
8.也许可以试试在页面头部添加之类的玩意,死马当做活马医,这类玩意参数很多,具体可百度。

js出错排查的一些注意事项

10/30
2014
学习

jquery并非越新越好——为了兼容性

最近做的网站引用了SuperSlide,其需要jq的支持,于是我不假思索下载了2.0.3版本的jq。这是个比较新的版本,现在项目都快上线了,有个同事用360极速浏览器的兼容模式查看,发现SuperSlide没有生效。后来我就拿ie8实验,在ietest里用ie8模式打开此网页后,不断报错:

这个大概是jq根据SuperSlide的指令执行操作被浏览器报错

这个是SuperSlide使用的jquery()方法不起效

去你妹的吧,在各种百度各种尝试,浪费最少半小时之后,忽然想到以前一件事情,某投资网站根据用户输入的数值来计算相应的其他值,我当时也是把jq换成新版本就报错了。只是我这里chrome里面没报错,只有ie8有问题,果断把jq换成百度cdn的1.9,世界清静了,又用I6模式看了下,连IE6都给我跪下了爆裂吧IE!!!就你们IE和系统捆绑紧,xp的ie只能到ie8,诚心找事啊

jquery并非越新越好——为了兼容性