摘要: 下载地址 jQuery1.7.2正式发布了,下载地址:http://code.jquery.com/jquery-1.7.2.min.js(minified, production)http://code.jquery.com/jquery-1.7.2.js(unminified, debug) 注:如果你正在使用jQuery Mobile,请使用最新的jQuery 1.7.2和jQuery Mobile 1.1这两个版本,因为之前的jQuery Mobile版本还基于jQuery core 1.7.1或更早的版本。更新内容Ajax#4624: Charset in default aja.. 阅读全文
posted @ 2012-04-23 17:40 artwl 阅读(2539) 评论(3) 推荐(2) 编辑
摘要: 问题的产生 在写JS的过程中,为了调试我们常常会写很多 console.log、console.info、console.group、console.warn、console.error代码来查看JS的运行情况,但发布时又因为IE不支持console,又要去掉这些代码,一不小心就会出错。 本文分享自己昨晚写的一个console类来试图解决这一问题。当然,更好的做法是把测试代码分开写,那样就不会有这个问题。解决思路 如何解决IE下不兼容的问题呢,那就是我们自己定义一个console类来覆盖浏览器提供的console功能,这样只要在页面中引用此JS文件就可以了。 另外,此类还提供了查看输出... 阅读全文
posted @ 2012-04-18 19:10 artwl 阅读(7341) 评论(7) 推荐(6) 编辑
摘要: 检测浏览器的方式 1、对象特征检测法:判断浏览器能力的通用方法。如果更关注浏览器的能力而不在乎它的实际身份,就可以使用这种检测方法。常见的原生Ajax写法中就用这种方法来创建XMLHttpRequest:IXHR: function(){ if(window.ActiveXObject){ XHR=new ActiveXObject('Microsoft.XMLHTTP'); }else if(window.XMLHttpRequest){ XHR=new XMLHttpRequest(); }else{ ... 阅读全文
posted @ 2012-04-16 21:47 artwl 阅读(715) 评论(0) 推荐(0) 编辑
摘要: Levenshtein算法Levenshtein算法定义及算法原理见这篇文章:一个快速、高效的Levenshtein算法实现JavaScript实现function levenshteinDistance(s,t){ if(s.length>t.length){ var temp=s; s=t; t=temp; delete temp; } var n=s.length; var m=t.length; if(m==0){ return n; } else if(n==0){ ... 阅读全文
posted @ 2012-04-15 20:58 artwl 阅读(1058) 评论(2) 推荐(3) 编辑
摘要: 今早在https://attachments.me/hirehack/public/computer.html做题,有一题是递归求嵌套数组中最大值:/*This challenge requires that, given as input an array which may contain: - integer values. - inner-arrays of integer values. - any recursive combination thereof. Return the largest value contained in the array or any of its 阅读全文
posted @ 2012-04-15 10:30 artwl 阅读(987) 评论(2) 推荐(0) 编辑
摘要: Window对象窗口操作 Window对象对操作浏览器窗口非常有用,开发者可以移动或调整浏览器窗口的大小。可用四种方法实现这些操作: moveBy(dx,dy):把浏览器窗口相对当前位置水平移动dx个像素,垂直移动dy个像素。dx值为负左移,dy为负上移。 moveTo(x,y):移动浏览器窗口,使它的左上角位于用户屏幕的(x,y)处。可以使用负数,不过这样会把部分窗口移出屏幕的可视区域。 resizeBy(dw,dh):相对浏览器窗口当前大小,把窗口的宽度调整dw个像素,高度调整dy个像素。dw、dy为负时缩小窗口。 resizeTo(w,h):把窗口的宽度调整为w,高度调整为h,... 阅读全文
posted @ 2012-04-14 12:51 artwl 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 早上看到《JavaScript 每周导读》【第三期】一文,里面发现一篇文章(Extending JavaScript – The Right Way),觉得还不错,翻译过来跟大家共享,本文并不是逐字逐句进行翻译,尽量说得通俗易懂。 原文地址:Extending JavaScript – The Right Way以下是译文 JavaScript已经内置了很多强大的方法,但有时你需要的某个功能在内置的方法中没有,我们怎么来优雅地扩展JavaScript功能呢。 例如我们想增加一个capitalize()方法来实现首字母大写,通常我们这样写:if(!String.prototype.ca... 阅读全文
posted @ 2012-04-12 11:01 artwl 阅读(3280) 评论(7) 推荐(5) 编辑
摘要: 前言 当前,在软件开发中单元测试越来越受到开发者的重视,它能提高软件的开发效率,而且能保障开发的质量。以往,单元测试往往多见于服务端的开发中,但随着Web编程领域的分工逐渐明细,在前端Javascript开发领域中,也可以进行相关的单元测试,以保障前端开发的质量。 在服务器端的单元测试中,都有各种各样的测试框架,在JavaScript中现在也有一些很优秀的框架,但在本文中,我们将自己动手一步步来实现一个简单的单元测试框架。 JS单元测试有很多方面,比较多的是对方法功能检查,对浏览器兼容性检查,本文主要谈第一种。 本文检查的JS代码是我以前写的一个JS日期格式化的方法,原文在这里(jav... 阅读全文
posted @ 2012-04-09 15:41 artwl 阅读(1577) 评论(4) 推荐(2) 编辑
摘要: 继承 继承是面向对象语言的必备特征,即一个类能够重用另一个类的方法和属性。在JavaScript中继承方式的实现方式主要有以下五种:对象冒充、call()、apply()、原型链、混合方式。 下面分别介绍。对象冒充 原理:构造函数使用this关键字给所有属性和方法赋值。因为构造函数只是一个函数,所以可以使ClassA的构造函数成为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造函数中定义的属性和方法。 示例:function ClassA(sColor){ this.color=sColor; this.sayColor=function(){ ... 阅读全文
posted @ 2012-04-01 14:37 artwl 阅读(698) 评论(0) 推荐(3) 编辑
摘要: 最近在博问中看到一个问题,问在MVC中如何用AJAX方式上传图片,这里做了一个DEMO,详细解释一下。 本DEMO代码非常简单,就是一个页面上有一个上传图片按钮,点击后弹出一个层,在这个弹出层里上传图片,然后把图片地址更新到页面上。在获得上传的图片地址后你可以做其他处理(如插入到文本编辑器中)。Controllerpublic class ImageController : Controller{ public ActionResult Index() { return View(); } [HttpPost] public JsonResul... 阅读全文
posted @ 2012-03-31 14:52 artwl 阅读(21668) 评论(11) 推荐(14) 编辑
摘要: 工厂方式 创建并返回特定类型的对象。 function createCar(sColor,iDoors,iMpg){ var oTempCar=new Object(); oTempCar.color=sColor; oTempCar.doors=iDoors; oTempCar.mpg=iMpg; oTempCar.showColor=function(){ alert(this.color); } return oTempCar;} 调用示例:var oCar1=createCar("red",4,23);var oCar2=c... 阅读全文
posted @ 2012-03-30 21:48 artwl 阅读(645) 评论(4) 推荐(0) 编辑
摘要: 前言一直比较喜欢收集网页特效,很多时候都会遇到CSS被压缩过的情况,这时查看起来就会非常不方便,有时为了减少文件大小,也会对自己的CSS进行压缩,网上提供这样服务的很多,但都不尽如人意,因此打算自己动手写一个JS来进行CSS的格式化和压缩原理CSS的结构如下:选择器{ css属性声明:值;}所以对CSS格式化也就比较简单,大致分为以下几步;1、把多个空格合并成一个,去掉换行2、对处理后的字符串按"{"进行分组3、遍历分组,对含有"}"的部分再次以"}"进行分组4、对分组后的数据进行处理,主要是加上空格和换行对CSS压缩就比较简单了,把 阅读全文
posted @ 2012-03-25 19:16 artwl 阅读(5017) 评论(7) 推荐(12) 编辑
摘要: Math对象的属性E:值e,自然对数的底LN10:10的自然对数LN2:2的自然对数LOG2E:以2为底E的对数LOG10E:以10为底E的对数PI:值派SQRT1_2:1/2 的平方根SQRT2:2的平方根Math对象的方法:最大值与最小值min()&&max()用于取一组数中的最小值跟最大值。示例:var iMax=Math.Max(1,2,3);alert(iMax);//outputs 3var iMin=Math.Min(1,2,3);alert(iMin);//outputs 1约对值abs()用于返回数字的绝对值。示例:var iNegOne=Math.abs(- 阅读全文
posted @ 2012-03-18 21:16 artwl 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 在博问中看到一个问题(为什么说这段JavaScript代码存在循环引用)中有一篇好文章,特转过来学习下。 原文地址:JavaScript 中的内存泄露模式 本文地址:JavaScript 中的内存泄露模式【转】 JavaScript 是用来向 Web 页面添加动态内容的一种功能强大的脚本语言。它尤其特别有助于一些日常任务,比如验证密码和创建动态菜单组件。JavaScript 易学易用,但却很容易在某些浏览器中引起内存的泄漏。在这个介绍性的文章中,我们解释了 JavaScript 中的泄漏由何引起,展示了常见的内存泄漏模式,并介绍了如何应对它们。 注意本文假设您已经非常熟悉使用 Ja... 阅读全文
posted @ 2012-03-13 16:29 artwl 阅读(925) 评论(0) 推荐(1) 编辑
摘要: 混乱的URI编码 JavaScript中编码有三种方法:escape、encodeURI、encodeURIComponent C#中编码主要方法:HttpUtility.UrlEncode、Server.UrlEncode、Uri.EscapeUriString、Uri.EscapeDataString JavaScript中的还好,只提供了三个,C#中主要用的就有这么多,还没有列出其他编码(HTML),一多就弄不明白,弄不明白就心生恐惧,心生恐惧就变得苦逼,本文就向大家详细解释在JavaScript及C#中如何对URI进行编码的方法(注:本文不涉及到其他编码)。escape:不推荐使... 阅读全文
posted @ 2012-03-07 00:24 artwl 阅读(49402) 评论(49) 推荐(102) 编辑
摘要: 内置对象 定义:由ECMAScript实现提供的、独立于宿主环境的所有对象,在ECMAScript程序开始执行时出现。 由定义可知开发者不必明确实例化内置对象,它已被实例化了。在ECMAScript-262只定义了两个内置对象,即Global和MathGlobal Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在。 由于在ECMAScript中不存在独立的对象,所有函数都必须是某个对象的方法,如前面提到的isNaN()、isFinite()、parseInt()和parseFloat()等,都是Global对象的方法。 escape()、encodeURI... 阅读全文
posted @ 2012-03-06 22:48 artwl 阅读(825) 评论(0) 推荐(0) 编辑
摘要: 最终效果:插件原理 所有弹出层的原理都差不多,就是用一个全屏半透明DIV做遮罩层,在这个遮罩层上再显示出一个层放要显示的内容,其他的就是CSS的运用了。 本插件为了使用简单,把JS跟CSS封装在了一个JS文件(插件)中,所以使用起来非常方便,做到了一行代码调用。插件源代码 插件(jquery.artwl.thickbox.js)的源码如下:/* File Created: 三月 1, 2012 Author:artwl blog:http://artwl.cnblogs.com */;(function ($) { $.extend({ artwl_bind... 阅读全文
posted @ 2012-03-01 19:36 artwl 阅读(24534) 评论(4) 推荐(9) 编辑
摘要: 背景 今天在博问中看到一个问题:用canvas 的 lineto方法画对角线,但画出来的图形不对? 这是一个很常见的误区,这里给大家细说一下。原理 在w3网站上是这样解释的:Thecanvaselement has two attributes to control the size of the coordinate space:widthandheight. These attributes, when specified, must have values that arevalid non-negative integers.Therules for parsing non-ne... 阅读全文
posted @ 2012-02-28 18:23 artwl 阅读(17708) 评论(5) 推荐(5) 编辑
摘要: 创建var d=new Date();要注意的是在JavaScript中月份的值是从0到11(0表示1月)。设置日期和时间值设置日期和时间值有两种方法:1、只声明距离1970年1月1日凌晨12点的毫秒数 a、直接用距离1970年1月1日凌晨12点的毫秒数 var d=new Date(0); b、parse方法: parse方法接受字符串为参数,把该字符串转换成日期值,返回的是毫秒数。 例如为2012年2月27日创建Date对象:var d=new Date(Date.parse("Feb 27,2012")); 如果传给parse方法的字符串不能转换成日期,该函数返回Na 阅读全文
posted @ 2012-02-27 21:33 artwl 阅读(603) 评论(0) 推荐(1) 编辑
摘要: 代码如下:function numInstring(str){ str=str.replace(/ /ig,""); var strArr=str.split(""); var result=[],beforeLength,afterLength,reg; for(var i=0;i<strArr.length;i++){ if(str.indexOf(strArr[i])!=-1){ beforeLength=str.length; reg=new RegExp(strArr[i],"ig"); ... 阅读全文
posted @ 2012-02-26 22:53 artwl 阅读(1461) 评论(4) 推荐(1) 编辑

个人简介

var ME = {
	"name": "土豆/Artwl",
	"job": "coding",
	"languages": [
		"JS", "HTML",
                "CSS", "jQuery"
		"MVC",".NET",
		"设计模式"
	],
	"hobby": [
		"阅读", "旅游",
		"音乐", "电影"
	]
}
TOP